summaryrefslogtreecommitdiff
path: root/src/arch/sparc/isa
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-02-28 16:39:42 +0000
committerGabe Black <gblack@eecs.umich.edu>2007-02-28 16:39:42 +0000
commiteb57b4f2141a19aff0a27db27cbb0892eef79960 (patch)
tree271cfcd78e514f4b242ccc98c37911cd135354c0 /src/arch/sparc/isa
parenta86ad3a512205f05f84d7011f442fb5dc41210d7 (diff)
parent29e5df890d9512a6a2c726dcb4ee46b92ac4cb22 (diff)
downloadgem5-eb57b4f2141a19aff0a27db27cbb0892eef79960.tar.xz
Merge zizzer.eecs.umich.edu:/bk/newmem
into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-sparc32 --HG-- extra : convert_revision : 88d1401f6e6b7c82344abef2c81b3c22bf6a0499
Diffstat (limited to 'src/arch/sparc/isa')
-rw-r--r--src/arch/sparc/isa/decoder.isa18
1 files changed, 3 insertions, 15 deletions
diff --git a/src/arch/sparc/isa/decoder.isa b/src/arch/sparc/isa/decoder.isa
index 0382aa35e..3b84e3073 100644
--- a/src/arch/sparc/isa/decoder.isa
+++ b/src/arch/sparc/isa/decoder.isa
@@ -1009,9 +1009,9 @@ 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 {
+#if FULL_SYSTEM
// we have 7 bits of space here to play with...
0x21: m5exit({{PseudoInst::m5exit(xc->tcBase(), O0);
}}, No_OpClass, IsNonSpeculative);
@@ -1023,11 +1023,9 @@ decode OP default Unknown::unknown()
0x54: m5panic({{
panic("M5 panic instruction called at pc=%#x.", xc->readPC());
}}, No_OpClass, IsNonSpeculative);
-
- }
-#else
- 0x37: Trap::impdep2({{fault = new IllegalInstruction;}});
#endif
+ default: Trap::impdep2({{fault = new IllegalInstruction;}});
+ }
0x38: Branch::jmpl({{
Addr target = Rs1 + Rs2_or_imm13;
if(target & 0x3)
@@ -1071,27 +1069,17 @@ decode OP default Unknown::unknown()
0x0: Trap::tcci({{
if(passesCondition(Ccr<3:0>, COND2))
{
-#if FULL_SYSTEM
int lTrapNum = I ? (Rs1 + SW_TRAP) : (Rs1 + Rs2);
DPRINTF(Sparc, "The trap number is %d\n", lTrapNum);
fault = new TrapInstruction(lTrapNum);
-#else
- DPRINTF(Sparc, "The syscall number is %d\n", R1);
- xc->syscall(R1);
-#endif
}
}}, IsSerializeAfter, IsNonSpeculative);
0x2: Trap::tccx({{
if(passesCondition(Ccr<7:4>, COND2))
{
-#if FULL_SYSTEM
int lTrapNum = I ? (Rs1 + SW_TRAP) : (Rs1 + Rs2);
DPRINTF(Sparc, "The trap number is %d\n", lTrapNum);
fault = new TrapInstruction(lTrapNum);
-#else
- DPRINTF(Sparc, "The syscall number is %d\n", R1);
- xc->syscall(R1);
-#endif
}
}}, IsSerializeAfter, IsNonSpeculative);
}