summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2014-06-12 20:06:33 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2014-06-12 20:06:33 +0000
commit3455c40f918b7e869ed83420a7e84d01e2fccb9f (patch)
treeb64ea71f4553e1488892cf0ddf82b3d5181693bb /test
parenta15b05e1aa18920a8f664a2af4c77874bc82474e (diff)
downloadllvm-3455c40f918b7e869ed83420a7e84d01e2fccb9f.tar.gz
llvm-3455c40f918b7e869ed83420a7e84d01e2fccb9f.tar.bz2
llvm-3455c40f918b7e869ed83420a7e84d01e2fccb9f.tar.xz
CodeGen: enable mov.w/mov.t pairs with minsize for WoA
Windows on ARM uses COFF/PE which is intrinsically position independent. For the case of 32-bit immediates, use a pair-wise relocation as otherwise we may exceed the range of operators. This fixes a code generation crash when using -Oz when targeting Windows on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210814 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/ARM/Windows/global-minsize.ll16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/Windows/global-minsize.ll b/test/CodeGen/ARM/Windows/global-minsize.ll
new file mode 100644
index 0000000000..c0be36caa6
--- /dev/null
+++ b/test/CodeGen/ARM/Windows/global-minsize.ll
@@ -0,0 +1,16 @@
+; RUN: llc -mtriple=thumbv7-windows -filetype asm -o - %s | FileCheck %s
+
+@i = internal global i32 0, align 4
+
+; Function Attrs: minsize
+define arm_aapcs_vfpcc i32* @function() #0 {
+entry:
+ ret i32* @i
+}
+
+attributes #0 = { minsize }
+
+; CHECK: function:
+; CHECK: movw r0, :lower16:i
+; CHECK: movt r0, :upper16:i
+; CHECK: bx lr