summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2010-05-14 14:22:51 -0700
committerGabe Black <gblack@eecs.umich.edu>2010-05-14 14:22:51 -0700
commitc5c559b6abf3eb803eeaa4b635d482b39afe9e9e (patch)
treebc6ef65c7520a494c3b63dd5728e537ace406c96
parent72071690e7386479ed0bd03c637d440ee8a19e0b (diff)
downloadgem5-c5c559b6abf3eb803eeaa4b635d482b39afe9e9e.tar.xz
SPARC: Implement the version of movcc that uses the fp condition codes.
-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({{