Fix x86 XCHG macro-op to use locked micro-ops for all memory accesses
authorTushar Krishna <Tushar.Krishna@amd.com>
Wed, 21 Jul 2010 16:55:57 +0000 (09:55 -0700)
committerTushar Krishna <Tushar.Krishna@amd.com>
Wed, 21 Jul 2010 16:55:57 +0000 (09:55 -0700)
src/arch/x86/isa/insts/general_purpose/data_transfer/xchg.py

index 03752c28abcc542327182cc84a3e4f1746e97165..6504b5ab465189b8ebe2eb43a2ef0a802fb6948d 100644 (file)
@@ -50,31 +50,31 @@ def macroop XCHG_R_R
 
 def macroop XCHG_R_M
 {
-    ldst t1, seg, sib, disp
-    st reg, seg, sib, disp
+    ldstl t1, seg, sib, disp
+    stul reg, seg, sib, disp
     mov reg, reg, t1
 };
 
 def macroop XCHG_R_P
 {
     rdip t7
-    ldst t1, seg, riprel, disp
-    st reg, seg, riprel, disp
+    ldstl t1, seg, riprel, disp
+    stul reg, seg, riprel, disp
     mov reg, reg, t1
 };
 
 def macroop XCHG_M_R
 {
-    ldst t1, seg, sib, disp
-    st reg, seg, sib, disp
+    ldstl t1, seg, sib, disp
+    stul reg, seg, sib, disp
     mov reg, reg, t1
 };
 
 def macroop XCHG_P_R
 {
     rdip t7
-    ldst t1, seg, riprel, disp
-    st reg, seg, riprel, disp
+    ldstl t1, seg, riprel, disp
+    stul reg, seg, riprel, disp
     mov reg, reg, t1
 };