diff options
Diffstat (limited to 'src/arch/alpha/isa/decoder.isa')
-rw-r--r-- | src/arch/alpha/isa/decoder.isa | 41 |
1 files changed, 13 insertions, 28 deletions
diff --git a/src/arch/alpha/isa/decoder.isa b/src/arch/alpha/isa/decoder.isa index d0aa13d38..ce0c92213 100644 --- a/src/arch/alpha/isa/decoder.isa +++ b/src/arch/alpha/isa/decoder.isa @@ -203,21 +203,13 @@ decode OPCODE default Unknown::unknown() { 31: decode IMM { 1: decode INTIMM { // return EV5 for FULL_SYSTEM and EV6 otherwise - 1: implver({{ -#if FULL_SYSTEM - Rc = 1; -#else - Rc = 2; -#endif - }}); + 1: implver({{ Rc = FULL_SYSTEM ? 1 : 2 }}); } } } -#if FULL_SYSTEM // The mysterious 11.25... 0x25: WarnUnimpl::eleven25(); -#endif } 0x12: decode INTFUNC { @@ -784,15 +776,11 @@ decode OPCODE default Unknown::unknown() { format BasicOperate { 0xc000: rpcc({{ -#if FULL_SYSTEM - /* Rb is a fake dependency so here is a fun way to get - * the parser to understand that. - */ - Ra = xc->readMiscReg(IPR_CC) + (Rb & 0); - -#else - Ra = curTick(); -#endif + /* Rb is a fake dependency so here is a fun way to get + * the parser to understand that. + */ + uint64_t unused_var M5_VAR_USED = Rb; + Ra = FULL_SYSTEM ? xc->readMiscReg(IPR_CC) : curTick(); }}, IsUnverifiable); // All of the barrier instructions below do nothing in @@ -817,23 +805,20 @@ decode OPCODE default Unknown::unknown() { 0x4400: wmb({{ }}, IsWriteBarrier, MemWriteOp); } -#if FULL_SYSTEM - format BasicOperate { - 0xe000: rc({{ + 0xe000: decode FULL_SYSTEM { + 0: FailUnimpl::rc_se(); + default: BasicOperate::rc({{ Ra = IntrFlag; IntrFlag = 0; }}, IsNonSpeculative, IsUnverifiable); - 0xf000: rs({{ + } + 0xf000: decode FULL_SYSTEM { + 0: FailUnimpl::rs_se(); + default: BasicOperate::rs({{ Ra = IntrFlag; IntrFlag = 1; }}, IsNonSpeculative, IsUnverifiable); } -#else - format FailUnimpl { - 0xe000: rc(); - 0xf000: rs(); - } -#endif } #if FULL_SYSTEM |