mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-21 03:28:31 +00:00
8afc8b7e63
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179657 91177308-0d34-0410-b5e6-96231b3b80d8
27 lines
1.2 KiB
ArmAsm
27 lines
1.2 KiB
ArmAsm
# 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
|