summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC/Mips/expr1.s
diff options
context:
space:
mode:
authorJack Carter <jack.carter@imgtec.com>2013-04-17 00:18:04 +0000
committerJack Carter <jack.carter@imgtec.com>2013-04-17 00:18:04 +0000
commitb5cf5909ac15a352cf0bdec03c9fca8f1f0ce96b (patch)
tree992b8fee8727892cae59cadcfa133317e31693de /llvm/test/MC/Mips/expr1.s
parenteb294538c372ba66050238ee34effd89e46a11fd (diff)
downloadbcm5719-llvm-b5cf5909ac15a352cf0bdec03c9fca8f1f0ce96b.tar.gz
bcm5719-llvm-b5cf5909ac15a352cf0bdec03c9fca8f1f0ce96b.zip
Mips assembler: Enable handling of nested expressions
This patch allows the Mips assembler to parse and emit nested expressions as instruction operands. It also extends the expansion of memory instructions when an offset is given as an expression. Contributer: Vladimir Medic llvm-svn: 179657
Diffstat (limited to 'llvm/test/MC/Mips/expr1.s')
-rw-r--r--llvm/test/MC/Mips/expr1.s26
1 files changed, 26 insertions, 0 deletions
diff --git a/llvm/test/MC/Mips/expr1.s b/llvm/test/MC/Mips/expr1.s
new file mode 100644
index 00000000000..67664c1a2ae
--- /dev/null
+++ b/llvm/test/MC/Mips/expr1.s
@@ -0,0 +1,26 @@
+# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | FileCheck %s
+# Check that the assembler can handle the expressions as operands.
+# CHECK: .text
+# CHECK: .globl foo
+# CHECK: foo:
+# CHECK: lw $4, %lo(foo)($4) # encoding: [A,A,0x84,0x8c]
+# CHECK: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
+# CHECK: lw $4, 56($4) # encoding: [0x38,0x00,0x84,0x8c]
+# CHECK: lw $4, %lo(foo+8)($4) # encoding: [0x08'A',A,0x84,0x8c]
+# CHECK: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
+# CHECK: lw $4, %lo(foo+8)($4) # encoding: [0x08'A',A,0x84,0x8c]
+# CHECK: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
+# CHECK: lw $4, %lo(foo+8)($4) # encoding: [0x08'A',A,0x84,0x8c]
+# CHECK: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
+# CHECK: .space 64
+
+ .globl foo
+ .ent foo
+foo:
+ lw $4,%lo(foo)($4)
+ lw $4,((10 + 4) * 4)($4)
+ lw $4,%lo (2 * 4) + foo($4)
+ lw $4,%lo((2 * 4) + foo)($4)
+ lw $4,(((%lo ((2 * 4) + foo))))($4)
+ .space 64
+ .end foo
OpenPOWER on IntegriCloud