mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-08 04:11:27 +00:00
[ARM] Constrain some register classes in EmitAtomicBinary64 so that
we pass these tests with -verify-machineinstrs. llvm-svn: 189006
This commit is contained in:
parent
5488806c84
commit
67edac2b5e
@ -6360,6 +6360,8 @@ ARMTargetLowering::EmitAtomicBinary64(MachineInstr *MI, MachineBasicBlock *BB,
|
|||||||
MRI.constrainRegClass(destlo, &ARM::rGPRRegClass);
|
MRI.constrainRegClass(destlo, &ARM::rGPRRegClass);
|
||||||
MRI.constrainRegClass(desthi, &ARM::rGPRRegClass);
|
MRI.constrainRegClass(desthi, &ARM::rGPRRegClass);
|
||||||
MRI.constrainRegClass(ptr, &ARM::rGPRRegClass);
|
MRI.constrainRegClass(ptr, &ARM::rGPRRegClass);
|
||||||
|
MRI.constrainRegClass(vallo, &ARM::rGPRRegClass);
|
||||||
|
MRI.constrainRegClass(valhi, &ARM::rGPRRegClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
MachineBasicBlock *loopMBB = MF->CreateMachineBasicBlock(LLVM_BB);
|
MachineBasicBlock *loopMBB = MF->CreateMachineBasicBlock(LLVM_BB);
|
||||||
@ -6467,6 +6469,8 @@ ARMTargetLowering::EmitAtomicBinary64(MachineInstr *MI, MachineBasicBlock *BB,
|
|||||||
|
|
||||||
// Store
|
// Store
|
||||||
if (isThumb2) {
|
if (isThumb2) {
|
||||||
|
MRI.constrainRegClass(StoreLo, &ARM::rGPRRegClass);
|
||||||
|
MRI.constrainRegClass(StoreHi, &ARM::rGPRRegClass);
|
||||||
AddDefaultPred(BuildMI(BB, dl, TII->get(ARM::t2STREXD), storesuccess)
|
AddDefaultPred(BuildMI(BB, dl, TII->get(ARM::t2STREXD), storesuccess)
|
||||||
.addReg(StoreLo).addReg(StoreHi).addReg(ptr));
|
.addReg(StoreLo).addReg(StoreHi).addReg(ptr));
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
; RUN: llc < %s -mtriple=armv7-apple-ios | FileCheck %s
|
; RUN: llc < %s -mtriple=armv7-apple-ios | FileCheck %s
|
||||||
; RUN: llc < %s -mtriple=thumbv7-none-linux-gnueabihf | FileCheck %s --check-prefix=CHECK-THUMB
|
; RUN: llc < %s -mtriple=thumbv7-none-linux-gnueabihf -verify-machineinstrs | FileCheck %s --check-prefix=CHECK-THUMB
|
||||||
|
|
||||||
define i64 @test1(i64* %ptr, i64 %val) {
|
define i64 @test1(i64* %ptr, i64 %val) {
|
||||||
; CHECK-LABEL: test1:
|
; CHECK-LABEL: test1:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
; RUN: llc < %s -mtriple=armv7-apple-ios -verify-machineinstrs | FileCheck %s -check-prefix=ARM
|
; RUN: llc < %s -mtriple=armv7-apple-ios -verify-machineinstrs | FileCheck %s -check-prefix=ARM
|
||||||
; RUN: llc < %s -mtriple=armv7-apple-ios -O0 | FileCheck %s -check-prefix=ARM
|
; RUN: llc < %s -mtriple=armv7-apple-ios -O0 | FileCheck %s -check-prefix=ARM
|
||||||
; RUN: llc < %s -mtriple=thumbv7-apple-ios | FileCheck %s -check-prefix=THUMBTWO
|
; RUN: llc < %s -mtriple=thumbv7-apple-ios -verify-machineinstrs | FileCheck %s -check-prefix=THUMBTWO
|
||||||
; RUN: llc < %s -mtriple=thumbv6-apple-ios | FileCheck %s -check-prefix=THUMBONE
|
; RUN: llc < %s -mtriple=thumbv6-apple-ios | FileCheck %s -check-prefix=THUMBONE
|
||||||
; RUN llc < %s -mtriple=armv4-apple-ios | FileCheck %s -check-prefix=ARMV4
|
; RUN llc < %s -mtriple=armv4-apple-ios | FileCheck %s -check-prefix=ARMV4
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user