summaryrefslogtreecommitdiff
path: root/src/arch/sparc/isa/decoder.isa
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-02-23 12:54:07 +0000
committerGabe Black <gblack@eecs.umich.edu>2007-02-23 12:54:07 +0000
commitc0c3a3f491aa02d237cb0d918c962572b547634a (patch)
treee7a40ef9dab946f8d9bf5287b04d796c4330e05f /src/arch/sparc/isa/decoder.isa
parentf8ffc84d0b4fc908487a0af200abcc3cfce56633 (diff)
parenta5b73a6e332c3f27ce29346229e1f91c04f53cf9 (diff)
downloadgem5-c0c3a3f491aa02d237cb0d918c962572b547634a.tar.xz
Merge zizzer.eecs.umich.edu:/bk/newmem
into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem --HG-- extra : convert_revision : e0eb0240848698496bd55093a313eb2e0f512ebc
Diffstat (limited to 'src/arch/sparc/isa/decoder.isa')
-rw-r--r--src/arch/sparc/isa/decoder.isa16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/arch/sparc/isa/decoder.isa b/src/arch/sparc/isa/decoder.isa
index 0be7defba..3684cda69 100644
--- a/src/arch/sparc/isa/decoder.isa
+++ b/src/arch/sparc/isa/decoder.isa
@@ -1009,7 +1009,20 @@ decode OP default Unknown::unknown()
0x80: Trap::shutdown({{fault = new IllegalInstruction;}});
0x81: FailUnimpl::siam();
}
+#if FULL_SYSTEM
+ // M5 special opcodes use the reserved IMPDEP2A opcode space
+ 0x37: decode M5FUNC {
+ // we have 7 bits of space here to play with...
+ 0x21: m5exit({{PseudoInst::m5exit(xc->tcBase(), O0);
+ }}, No_OpClass, IsNonSpeculative);
+ 0x54: m5panic({{
+ panic("M5 panic instruction called at pc=%#x.", xc->readPC());
+ }}, No_OpClass, IsNonSpeculative);
+
+ }
+#else
0x37: Trap::impdep2({{fault = new IllegalInstruction;}});
+#endif
0x38: Branch::jmpl({{
Addr target = Rs1 + Rs2_or_imm13;
if(target & 0x3)
@@ -1077,7 +1090,8 @@ decode OP default Unknown::unknown()
}
}}, IsSerializeAfter, IsNonSpeculative);
}
- 0x3B: Nop::flush({{/*Instruction memory flush*/}});
+ 0x3B: Nop::flush({{/*Instruction memory flush*/}}, IsWriteBarrier,
+ MemWriteOp);
0x3C: save({{
if(Cansave == 0)
{