mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-29 10:32:47 +00:00
27b1252c13
This changes the tests that were targeting ARM EABI to explicitly specify the environment rather than relying on the default. This breaks with the new Windows on ARM support when running the tests on Windows where the default environment is no longer EABI. Take the opportunity to avoid a pointless redirect (helps when trying to debug with providing a command line invocation which can be copy and pasted) and removing a few greps in favour of FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205541 91177308-0d34-0410-b5e6-96231b3b80d8
32 lines
971 B
LLVM
32 lines
971 B
LLVM
; RUN: llc -mtriple=arm-eabi -no-integrated-as %s -o /dev/null
|
|
|
|
; Test ARM-mode "I" constraint, for any Data Processing immediate.
|
|
define i32 @testI(i32 %x) {
|
|
%y = call i32 asm "add $0, $1, $2", "=r,r,I"( i32 %x, i32 65280 ) nounwind
|
|
ret i32 %y
|
|
}
|
|
|
|
; Test ARM-mode "J" constraint, for compatibility with unknown use in GCC.
|
|
define void @testJ() {
|
|
tail call void asm sideeffect ".word $0", "J"( i32 4080 ) nounwind
|
|
ret void
|
|
}
|
|
|
|
; Test ARM-mode "K" constraint, for bitwise inverted Data Processing immediates.
|
|
define void @testK() {
|
|
tail call void asm sideeffect ".word $0", "K"( i32 16777215 ) nounwind
|
|
ret void
|
|
}
|
|
|
|
; Test ARM-mode "L" constraint, for negated Data Processing immediates.
|
|
define void @testL() {
|
|
tail call void asm sideeffect ".word $0", "L"( i32 -65280 ) nounwind
|
|
ret void
|
|
}
|
|
|
|
; Test ARM-mode "M" constraint, for value between 0 and 32.
|
|
define i32 @testM(i32 %x) {
|
|
%y = call i32 asm "lsl $0, $1, $2", "=r,r,M"( i32 %x, i32 31 ) nounwind
|
|
ret i32 %y
|
|
}
|