summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorMon P Wang <wangmp@apple.com>2008-07-17 04:54:06 +0000
committerMon P Wang <wangmp@apple.com>2008-07-17 04:54:06 +0000
commit1e2c6bfa41f2c15776dd9cafbcefddf6e4d412b6 (patch)
treec72249c2f7cd8568d02b169b9dcc56e47dd42556 /llvm/lib
parent77a3d05f1ea8d58328d221f833d7f91d3bf5c409 (diff)
downloadbcm5719-llvm-1e2c6bfa41f2c15776dd9cafbcefddf6e4d412b6.tar.gz
bcm5719-llvm-1e2c6bfa41f2c15776dd9cafbcefddf6e4d412b6.zip
When lowering certain atomics, we need to copy the memoperand from the old
atomic operation to the new one. llvm-svn: 53714
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 5620d92d9e8..1c93477ec39 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -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);
OpenPOWER on IntegriCloud