struct RenameMode<ArmISA::ISA>
{
static Enums::VecRegRenameMode
- init(const ArmISA::ISA* isa)
+ init(const BaseISA* isa)
{
- return isa->vecRegRenameMode();
+ auto arm_isa = dynamic_cast<const ArmISA::ISA *>(isa);
+ assert(arm_isa);
+ return arm_isa->vecRegRenameMode();
}
static Enums::VecRegRenameMode
}
static bool
- equalsInit(const ArmISA::ISA* isa1, const ArmISA::ISA* isa2)
+ equalsInit(const BaseISA* isa1, const BaseISA* isa2)
{
return init(isa1) == init(isa2);
}
/*
- * Copyright (c) 2016 ARM Limited
+ * Copyright (c) 2016, 2020 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
#ifndef __ARCH_COMMON_TRAITS_HH__
#define __ARCH_COMMON_TRAITS_HH__
+#include "arch/generic/isa.hh"
#include "arch/types.hh"
#include "enums/VecRegRenameMode.hh"
template <typename ISA>
struct RenameMode
{
- static Enums::VecRegRenameMode init(const ISA*) { return Enums::Full; }
+ static Enums::VecRegRenameMode init(const BaseISA*) { return Enums::Full; }
static Enums::VecRegRenameMode
mode(const TheISA::PCState&)
* Compare the initial rename mode of two instances of the ISA.
* Result is true by definition, as the default mode is Full.
* */
- static bool equalsInit(const ISA*, const ISA*) { return true; }
+ static bool equalsInit(const BaseISA*, const BaseISA*) { return true; }
};
#endif /* __ARCH_COMMON_TRAITS_HH__ */