mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-20 14:29:27 +00:00
Fix a couple of typos in EmitAtomic.
Thumb2 instructions are mostly constrained to rGPR, not tGPR which is for Thumb1. rdar://problem/12203728 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162968 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9765c6ecde
commit
05e80f2714
@ -5418,7 +5418,7 @@ ARMTargetLowering::EmitAtomicBinary(MachineInstr *MI, MachineBasicBlock *BB,
|
||||
exitMBB->transferSuccessorsAndUpdatePHIs(BB);
|
||||
|
||||
const TargetRegisterClass *TRC = isThumb2 ?
|
||||
(const TargetRegisterClass*)&ARM::tGPRRegClass :
|
||||
(const TargetRegisterClass*)&ARM::rGPRRegClass :
|
||||
(const TargetRegisterClass*)&ARM::GPRRegClass;
|
||||
unsigned scratch = MRI.createVirtualRegister(TRC);
|
||||
unsigned scratch2 = (!BinOpcode) ? incr : MRI.createVirtualRegister(TRC);
|
||||
@ -5529,7 +5529,7 @@ ARMTargetLowering::EmitAtomicBinaryMinMax(MachineInstr *MI,
|
||||
exitMBB->transferSuccessorsAndUpdatePHIs(BB);
|
||||
|
||||
const TargetRegisterClass *TRC = isThumb2 ?
|
||||
(const TargetRegisterClass*)&ARM::tGPRRegClass :
|
||||
(const TargetRegisterClass*)&ARM::rGPRRegClass :
|
||||
(const TargetRegisterClass*)&ARM::GPRRegClass;
|
||||
unsigned scratch = MRI.createVirtualRegister(TRC);
|
||||
unsigned scratch2 = MRI.createVirtualRegister(TRC);
|
||||
|
@ -159,3 +159,13 @@ entry:
|
||||
store i8 %3, i8* %old
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK: func4
|
||||
; This function should not need to use callee-saved registers.
|
||||
; rdar://problem/12203728
|
||||
; CHECK-NOT: r4
|
||||
define i32 @func4(i32* %p) nounwind optsize ssp {
|
||||
entry:
|
||||
%0 = atomicrmw add i32* %p, i32 1 monotonic
|
||||
ret i32 %0
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user