diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2010-08-25 19:10:42 -0500 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2010-08-25 19:10:42 -0500 |
commit | 63464d950ec4e8b8f3aa86802ca9fbf1e8c662b6 (patch) | |
tree | 62269c4404c83a2a371f3d73fc58ff496d472c90 /src/arch/arm/isa/formats | |
parent | 93ce7238bf25b4f75f129aa822c70591a0b15a31 (diff) | |
download | gem5-63464d950ec4e8b8f3aa86802ca9fbf1e8c662b6.tar.xz |
ARM: Seperate out the renamable bits in the FPSCR.
Diffstat (limited to 'src/arch/arm/isa/formats')
-rw-r--r-- | src/arch/arm/isa/formats/fp.isa | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/arch/arm/isa/formats/fp.isa b/src/arch/arm/isa/formats/fp.isa index 1482c2119..9d40a4a43 100644 --- a/src/arch/arm/isa/formats/fp.isa +++ b/src/arch/arm/isa/formats/fp.isa @@ -1969,7 +1969,11 @@ let {{ default: return new Unknown(machInst); } - return new Vmsr(machInst, (IntRegIndex)specReg, rt); + if (specReg == MISCREG_FPSCR) { + return new VmsrFpscr(machInst, (IntRegIndex)specReg, rt); + } else { + return new Vmsr(machInst, (IntRegIndex)specReg, rt); + } } } else if (l == 0 && c == 1) { if (bits(a, 2) == 0) { @@ -2061,8 +2065,15 @@ let {{ cpsrMask.z = 1; cpsrMask.c = 1; cpsrMask.v = 1; - return new VmrsApsr(machInst, INTREG_CONDCODES, - (IntRegIndex)specReg, (uint32_t)cpsrMask); + if (specReg == MISCREG_FPSCR) { + return new VmrsApsrFpscr(machInst, INTREG_CONDCODES, + (IntRegIndex)specReg, (uint32_t)cpsrMask); + } else { + return new VmrsApsr(machInst, INTREG_CONDCODES, + (IntRegIndex)specReg, (uint32_t)cpsrMask); + } + } else if (specReg == MISCREG_FPSCR) { + return new VmrsFpscr(machInst, rt, (IntRegIndex)specReg); } else { return new Vmrs(machInst, rt, (IntRegIndex)specReg); } |