From 87eb9a3a640875d176bec9dfb130450d23d8e8b8 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 20 Dec 2017 00:02:47 -0800 Subject: riscv,x86: Stop using the arch Nop machine instruction unnecessarily. That particular ExtMachInst is a convenient placeholder, but a value of 0 in RISCV or a static uninitialized ExtMachInst (which will therefore be all zeroes) on x86 works just as well, and removes the need for an ISA specific constant. Also, the idea of a universal Nop doesn't always make sense since it could be that what, exactly, doesn't do anything depends on context which would be lost on a constant value of an ExtMachInst. For instance, the value of an ExtMachInst that makes sense might depend on what mode the CPU was in, etc. Change-Id: I1f1a43a5c607a667e11b79bcf6e059e4f7141b3f Reviewed-on: https://gem5-review.googlesource.com/6825 Reviewed-by: Gabe Black Reviewed-by: Alec Roelke Maintainer: Gabe Black --- src/arch/x86/insts/badmicroop.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/arch/x86/insts') diff --git a/src/arch/x86/insts/badmicroop.cc b/src/arch/x86/insts/badmicroop.cc index 21af1281b..09248738d 100644 --- a/src/arch/x86/insts/badmicroop.cc +++ b/src/arch/x86/insts/badmicroop.cc @@ -42,14 +42,21 @@ #include "arch/x86/generated/decoder.hh" #include "arch/x86/isa_traits.hh" +namespace { + +static X86ISA::ExtMachInst dummyMachInst; + +} + namespace X86ISA { // This microop needs to be allocated on the heap even though it could // theoretically be statically allocated. The reference counted pointer would // try to delete the static memory when it was destructed. + const StaticInstPtr badMicroop = - new X86ISAInst::MicroPanic(NoopMachInst, "BAD", + new X86ISAInst::MicroPanic(dummyMachInst, "BAD", StaticInst::IsMicroop | StaticInst::IsLastMicroop, "Invalid microop!", 0); -- cgit v1.2.3