X86: Make rdcr use merge and the mov to control register instructions use the right...
authorGabe Black <gblack@eecs.umich.edu>
Wed, 25 Feb 2009 18:21:08 +0000 (10:21 -0800)
committerGabe Black <gblack@eecs.umich.edu>
Wed, 25 Feb 2009 18:21:08 +0000 (10:21 -0800)
src/arch/x86/isa/insts/general_purpose/data_transfer/move.py
src/arch/x86/isa/microops/regop.isa

index abe44ae59018860644b581d67c3fe2d462058269..dded949681bfbfe03cf91b5d169a5b3ca879d46d 100644 (file)
@@ -192,10 +192,12 @@ def macroop MOVZX_W_R_P {
 };
 
 def macroop MOV_C_R {
+    .adjust_env maxOsz
     wrcr reg, regm
 };
 
 def macroop MOV_R_C {
+    .adjust_env maxOsz
     rdcr reg, regm
 };
 
index 1349a64c27aaed28e2451809c5da7cae04f7e848..7c2feb398585f1e309b20345f3670bff542235fc 100644 (file)
@@ -967,7 +967,7 @@ let {{
             if (src1 == 1 || (src1 > 4 && src1 < 8) || (src1 > 8)) {
                 fault = new InvalidOpcode();
             } else {
-                DestReg = ControlSrc1;
+                DestReg = merge(DestReg, ControlSrc1, dataSize);
             }
         '''