summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/sparc/isa/decoder.isa28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/arch/sparc/isa/decoder.isa b/src/arch/sparc/isa/decoder.isa
index ce5e34ff0..b9b38b569 100644
--- a/src/arch/sparc/isa/decoder.isa
+++ b/src/arch/sparc/isa/decoder.isa
@@ -395,7 +395,33 @@ decode OP default Unknown::unknown()
}});
0x2C: decode MOVCC3
{
- 0x0: Trap::movccfcc({{fault = new FpDisabled;}});
+ 0x0: decode CC
+ {
+ 0x0: movccfcc0({{
+ if(passesCondition(Fsr<11:10>, COND4))
+ Rd = Rs2_or_imm11;
+ else
+ Rd = Rd;
+ }});
+ 0x1: movccfcc1({{
+ if(passesCondition(Fsr<33:32>, COND4))
+ Rd = Rs2_or_imm11;
+ else
+ Rd = Rd;
+ }});
+ 0x2: movccfcc2({{
+ if(passesCondition(Fsr<35:34>, COND4))
+ Rd = Rs2_or_imm11;
+ else
+ Rd = Rd;
+ }});
+ 0x3: movccfcc3({{
+ if(passesCondition(Fsr<37:36>, COND4))
+ Rd = Rs2_or_imm11;
+ else
+ Rd = Rd;
+ }});
+ }
0x1: decode CC
{
0x0: movcci({{