arch, arch-arm: Use BaseISA in RenameMode interface
Please note: we are still templatizing the RenameMode class to avoid virtual methods Change-Id: I4afd99f45eaa45be9e032b67e106884a21c83234 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25429 Reviewed-by: Gabe Black <gabeblack@google.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -776,9 +776,11 @@ template<>
|
||||
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
|
||||
@@ -792,7 +794,7 @@ struct RenameMode<ArmISA::ISA>
|
||||
}
|
||||
|
||||
static bool
|
||||
equalsInit(const ArmISA::ISA* isa1, const ArmISA::ISA* isa2)
|
||||
equalsInit(const BaseISA* isa1, const BaseISA* isa2)
|
||||
{
|
||||
return init(isa1) == init(isa2);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* 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
|
||||
@@ -40,6 +40,7 @@
|
||||
#ifndef __ARCH_COMMON_TRAITS_HH__
|
||||
#define __ARCH_COMMON_TRAITS_HH__
|
||||
|
||||
#include "arch/generic/isa.hh"
|
||||
#include "arch/types.hh"
|
||||
#include "enums/VecRegRenameMode.hh"
|
||||
|
||||
@@ -51,7 +52,7 @@
|
||||
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&)
|
||||
@@ -61,7 +62,7 @@ struct RenameMode
|
||||
* 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__ */
|
||||
|
||||
Reference in New Issue
Block a user