summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2016-02-09 22:31:49 +0000
committerSimon Atanasyan <simon@atanasyan.com>2016-02-09 22:31:49 +0000
commit2fc1e3b154c8d506d12a9781cb8b592b468b5eb8 (patch)
tree9d14fa1683e120574302560e815f4d555a2942c9 /llvm/test
parent6d870d2e84b8cc812ffd29a98f477061f5e01e2e (diff)
downloadbcm5719-llvm-2fc1e3b154c8d506d12a9781cb8b592b468b5eb8.tar.gz
bcm5719-llvm-2fc1e3b154c8d506d12a9781cb8b592b468b5eb8.zip
[mips] Extend MipsAsmParser class to handle %got(sym + const) expressions
Now the parser supports `%got(sym)` expressions only but `%got(sym + const)` variant is also valid and accepted by GAS. Differential Revision: http://reviews.llvm.org/D16885 llvm-svn: 260305
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/MC/Mips/got-rel-expr.s20
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/MC/Mips/got-rel-expr.s b/llvm/test/MC/Mips/got-rel-expr.s
new file mode 100644
index 00000000000..01c364e5dc3
--- /dev/null
+++ b/llvm/test/MC/Mips/got-rel-expr.s
@@ -0,0 +1,20 @@
+# Check that llvm-mc accepts arithmetic expression
+# as an argument of the %got relocation.
+
+# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s \
+# RUN: | llvm-objdump -d -r - | FileCheck %s
+
+ .text
+foo:
+ lw $t0,%got($loc+0x10004)($gp)
+# CHECK: 0: 8f 88 00 01 lw $8, 1($gp)
+# CHECK: 00000000: R_MIPS_GOT16 $loc
+ addi $t0,$t0,%lo($loc+0x10004)
+# CHECK: 4: 21 08 00 04 addi $8, $8, 4
+# CHECK: 00000004: R_MIPS_LO16 $loc
+
+ .data
+$loc:
+ .word 0
+ .space 0x10000
+ .word 0
OpenPOWER on IntegriCloud