X86: Implement a locking version of XADD.
authorGabe Black <gblack@eecs.umich.edu>
Sun, 19 Apr 2009 11:56:49 +0000 (04:56 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Sun, 19 Apr 2009 11:56:49 +0000 (04:56 -0700)
src/arch/x86/isa/insts/general_purpose/semaphores.py

index a34e2a3c7433a1fa9092b8d9135ee424b34102ba..a7da0720e8e2b236932f3739b7a6c45e98432513 100644 (file)
@@ -113,6 +113,21 @@ def macroop XADD_P_R {
     mov reg, reg, t1
 };
 
+def macroop XADD_LOCKED_M_R {
+    ldstl t1, seg, sib, disp
+    add t2, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
+    stul t2, seg, sib, disp
+    mov reg, reg, t1
+};
+
+def macroop XADD_LOCKED_P_R {
+    rdip t7
+    ldstl t1, seg, riprel, disp
+    add t2, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
+    stul t2, seg, riprel, disp
+    mov reg, reg, t1
+};
+
 def macroop XADD_R_R {
     add t2, regm, reg, flags=(OF,SF,ZF,AF,PF,CF)
     mov regm, regm, reg