diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-06-12 20:06:33 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-06-12 20:06:33 +0000 |
commit | 3455c40f918b7e869ed83420a7e84d01e2fccb9f (patch) | |
tree | b64ea71f4553e1488892cf0ddf82b3d5181693bb /test | |
parent | a15b05e1aa18920a8f664a2af4c77874bc82474e (diff) | |
download | llvm-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.ll | 16 |
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 |