When lowering certain atomics, we need to copy the memoperand from the old
authorMon P Wang <wangmp@apple.com>
Thu, 17 Jul 2008 04:54:06 +0000 (04:54 +0000)
committerMon P Wang <wangmp@apple.com>
Thu, 17 Jul 2008 04:54:06 +0000 (04:54 +0000)
atomic operation to the new one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53714 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index 5620d92d9e81d9f8e4f9957c0e7296f05b4bfca8..1c93477ec392550ef11dda1132539ff2a331f9e5 100644 (file)
@@ -6010,7 +6010,9 @@ X86TargetLowering::EmitAtomicBitwiseWithCustomInserter(MachineInstr *bInstr,
   for (int i=0; i <= lastAddrIndx; ++i)
     (*MIB).addOperand(*argOpers[i]);
   MIB.addReg(t2);
-  
+  assert(bInstr->hasOneMemOperand() && "Unexpected number of memoperand");
+  (*MIB).addMemOperand(*F, *bInstr->memoperands_begin());
+
   MIB = BuildMI(newMBB, TII->get(X86::MOV32rr), destOper.getReg());
   MIB.addReg(X86::EAX);
   
@@ -6107,6 +6109,8 @@ X86TargetLowering::EmitAtomicMinMaxWithCustomInserter(MachineInstr *mInstr,
   for (int i=0; i <= lastAddrIndx; ++i)
     (*MIB).addOperand(*argOpers[i]);
   MIB.addReg(t3);
+  assert(mInstr->hasOneMemOperand() && "Unexpected number of memoperand");
+  (*MIB).addMemOperand(*F, *mInstr->memoperands_begin());
   
   MIB = BuildMI(newMBB, TII->get(X86::MOV32rr), destOper.getReg());
   MIB.addReg(X86::EAX);