X86: Make the movfp microop use FloatRegBits instead of FloatRegs.
authorGabe Black <gblack@eecs.umich.edu>
Wed, 5 Sep 2007 06:42:55 +0000 (23:42 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Wed, 5 Sep 2007 06:42:55 +0000 (23:42 -0700)
This fixes a problem where interpreting arbitrary bits as floating point would
change what the value was. These values are legitimate because the fp
registers could be used to move around arbitrary data.

--HG--
extra : convert_revision : f1d7159ba137702b5722cc7c1b64ed7dd06c21de

src/arch/x86/isa/microops/regop.isa

index 1d9299ff35abceedd9133cfc145da74a5a19408d..589113ba3ec21eef7ee3d202a40daf81be145a39 100644 (file)
@@ -489,8 +489,8 @@ let {{
         else_code = 'DestReg=DestReg;'
 
     class Movfp(CondRegOp):
-        code = 'FpDestReg = FpSrcReg2'
-        else_code = 'FpDestReg = FpDestReg;'
+        code = 'FpDestReg.uqw = FpSrcReg2.uqw;'
+        else_code = 'FpDestReg.uqw = FpDestReg.uqw;'
 
     # Shift instructions