diff options
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/MC/Mips/macro-aliases-invalid-wrong-error.s | 38 | ||||
| -rw-r--r-- | llvm/test/MC/Mips/macro-aliases.s | 35 |
2 files changed, 73 insertions, 0 deletions
diff --git a/llvm/test/MC/Mips/macro-aliases-invalid-wrong-error.s b/llvm/test/MC/Mips/macro-aliases-invalid-wrong-error.s new file mode 100644 index 00000000000..b87646d0b09 --- /dev/null +++ b/llvm/test/MC/Mips/macro-aliases-invalid-wrong-error.s @@ -0,0 +1,38 @@ +# RUN: not llvm-mc -arch=mips %s 2>%t1 +# RUN: FileCheck --check-prefix=O32 %s < %t1 + +# RUN: not llvm-mc -arch=mips64 %s 2>%t1 +# RUN: FileCheck --check-prefix=N64 %s < %t1 + +# Check that subu only rejects any non-constant values. + +.globl end + subu $4, $4, %lo($start) # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + # N64: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list + subu $4, $4, $start # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + # N64: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list + subu $4, $a4, $a4 # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + subu $4, $4, %hi(end) # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + # N64: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list + subu $4, $4, end + 4 # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + # N64: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list + subu $4, $4, end # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + # N64: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list + subu $4, $4, sp # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + # N64: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list + + subu $4, %lo($start) # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + # N64: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list + subu $4, $start # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + # N64: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list + subu $4, $a4 # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + subu $4, %hi(end) # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + # N64: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list + subu $4, end + 4 # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + # N64: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list + subu $4, end # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + # N64: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list + subu $4, sp # O32: [[@LINE]]:{{[0-9]+}}: error: unexpected token in argument list + # N64: [[@LINE-1]]:{{[0-9]+}}: error: unexpected token in argument list + +$start: diff --git a/llvm/test/MC/Mips/macro-aliases.s b/llvm/test/MC/Mips/macro-aliases.s new file mode 100644 index 00000000000..daa1d8b2437 --- /dev/null +++ b/llvm/test/MC/Mips/macro-aliases.s @@ -0,0 +1,35 @@ +# RUN: llvm-mc -arch=mips -mcpu=mips32r2 %s -show-inst | FileCheck %s + +# Test that subu accepts constant operands and inverts them when +# rendering the operand. + + subu $4, $4, 4 # CHECK: ADDiu + # CHECK; Imm:-4 + subu $gp, $gp, 4 # CHECK: ADDiu + # CHECK; Imm:-4 + subu $sp, $sp, 4 # CHECK: ADDiu + # CHECK; Imm:-4 + subu $4, $4, -4 # CHECK: ADDiu + # CHECK; Imm:4 + subu $gp, $gp, -4 # CHECK: ADDiu + # CHECK; Imm:4 + subu $sp, $sp, -4 # CHECK: ADDiu + # CHECK; Imm:4 + subu $sp, $sp, -(4 + 4) # CHECK: ADDiu + # CHECK: Imm:8 + + subu $4, 8 # CHECK: ADDiu + # CHECK; Imm:-8 + subu $gp, 8 # CHECK: ADDiu + # CHECK; Imm:-8 + subu $sp, 8 # CHECK: ADDiu + # CHECK; Imm:-8 + subu $4, -8 # CHECK: ADDiu + # CHECK; Imm:8 + subu $gp, -8 # CHECK: ADDiu + # CHECK; Imm:8 + subu $sp, -8 # CHECK: ADDiu + # CHECK; Imm:8 + subu $sp, -(4 + 4) # CHECK: ADDiu + # CHECK: Imm:8 + |

