Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion llvm/lib/Target/ARM/ARMSubtarget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,11 @@ void ARMSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
(Options.UnsafeFPMath || isTargetDarwin()))
HasNEONForFP = true;

if (isRWPI())
const ARM::ArchKind Arch = ARM::parseArch(TargetTriple.getArchName());
if (isRWPI() ||
(isTargetIOS() &&
(Arch == ARM::ArchKind::ARMV6K || Arch == ARM::ArchKind::ARMV6) &&
TargetTriple.isOSVersionLT(3, 0)))
ReserveR9 = true;

// If MVEVectorCostFactor is still 0 (has not been set to anything else), default it to 2
Expand Down
9 changes: 9 additions & 0 deletions llvm/test/CodeGen/ARM/inline-asm-clobber.ll
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,21 @@
; RUN: llc <%s -mtriple=arm-none-eabi --frame-pointer=all 2>&1 \
; RUN: | FileCheck %s -check-prefix=NO_FP_ELIM

; RUN: llc <%s -mtriple=armv6k-apple-ios2 2>&1 | FileCheck %s -check-prefix=IOS2

; RUN: llc <%s -mtriple=armv6k-apple-ios3 2>&1 | FileCheck %s -check-prefix=IOS3

; RUN: llc <%s -mtriple=armv7-apple-ios2 2>&1 | FileCheck %s -check-prefix=IOSV7

; CHECK: warning: inline asm clobber list contains reserved registers: SP, PC
; CHECK: warning: inline asm clobber list contains reserved registers: R11
; RWPI: warning: inline asm clobber list contains reserved registers: R9, SP, PC
; RWPI: warning: inline asm clobber list contains reserved registers: R11
; NO_FP_ELIM: warning: inline asm clobber list contains reserved registers: R11, SP, PC
; NO_FP_ELIM: warning: inline asm clobber list contains reserved registers: R11
; IOS2: warning: inline asm clobber list contains reserved registers: R9, SP, PC
; IOS3: warning: inline asm clobber list contains reserved registers: SP, PC
; IOSV7: warning: inline asm clobber list contains reserved registers: SP, PC

define void @foo() nounwind {
call void asm sideeffect "mov r7, #1",
Expand Down
Loading