diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2010-05-14 14:22:51 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2010-05-14 14:22:51 -0700 |
commit | c5c559b6abf3eb803eeaa4b635d482b39afe9e9e (patch) | |
tree | bc6ef65c7520a494c3b63dd5728e537ace406c96 /src/arch/sparc | |
parent | 72071690e7386479ed0bd03c637d440ee8a19e0b (diff) | |
download | gem5-c5c559b6abf3eb803eeaa4b635d482b39afe9e9e.tar.xz |
SPARC: Implement the version of movcc that uses the fp condition codes.
Diffstat (limited to 'src/arch/sparc')
-rw-r--r-- | src/arch/sparc/isa/decoder.isa | 28 |
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({{ |