llvm/test/MC/Mips/set-at-directive.s
Toma Tabacu 94b64060af [mips] Improve support for the .set at/noat assembler directives.
Summary:
Made the following changes:
  Added calls to emitDirectiveSetNoAt() and emitDirectiveSetAt().
  Added special emit function for .set at=$reg, emitDirectiveSetAtWithArg(unsigned RegNo).
  Improved parsing error checks for .set at.
  Refactored parser code for .set at.
  Improved testing of both directives.
  Improved code readability and comments.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D7176

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229097 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-13 10:30:57 +00:00

193 lines
4.5 KiB
ArmAsm

# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | \
# RUN: FileCheck %s
# Check that the assembler can handle the documented syntax
# for ".set at" and set the correct value.
.text
foo:
# CHECK: .set at=$1
# CHECK: lui $1, 1
# CHECK: addu $1, $1, $2
# CHECK: lw $2, 0($1)
.set at=$1
lw $2, 65536($2)
# CHECK: .set at=$2
# CHECK: lui $2, 1
# CHECK: addu $2, $2, $1
# CHECK: lw $1, 0($2)
.set at=$2
lw $1, 65536($1)
# CHECK: .set at=$3
# CHECK: lui $3, 1
# CHECK: addu $3, $3, $1
# CHECK: lw $1, 0($3)
.set at=$3
lw $1, 65536($1)
# CHECK: .set at=$4
# CHECK: lui $4, 1
# CHECK: addu $4, $4, $1
# CHECK: lw $1, 0($4)
.set at=$a0
lw $1, 65536($1)
# CHECK: .set at=$5
# CHECK: lui $5, 1
# CHECK: addu $5, $5, $1
# CHECK: lw $1, 0($5)
.set at=$a1
lw $1, 65536($1)
# CHECK: .set at=$6
# CHECK: lui $6, 1
# CHECK: addu $6, $6, $1
# CHECK: lw $1, 0($6)
.set at=$a2
lw $1, 65536($1)
# CHECK: .set at=$7
# CHECK: lui $7, 1
# CHECK: addu $7, $7, $1
# CHECK: lw $1, 0($7)
.set at=$a3
lw $1, 65536($1)
# CHECK: .set at=$8
# CHECK: lui $8, 1
# CHECK: addu $8, $8, $1
# CHECK: lw $1, 0($8)
.set at=$8
lw $1, 65536($1)
# CHECK: .set at=$9
# CHECK: lui $9, 1
# CHECK: addu $9, $9, $1
# CHECK: lw $1, 0($9)
.set at=$9
lw $1, 65536($1)
# CHECK: .set at=$10
# CHECK: lui $10, 1
# CHECK: addu $10, $10, $1
# CHECK: lw $1, 0($10)
.set at=$10
lw $1, 65536($1)
# CHECK: .set at=$11
# CHECK: lui $11, 1
# CHECK: addu $11, $11, $1
# CHECK: lw $1, 0($11)
.set at=$11
lw $1, 65536($1)
# CHECK: .set at=$12
# CHECK: lui $12, 1
# CHECK: addu $12, $12, $1
# CHECK: lw $1, 0($12)
.set at=$12
lw $1, 65536($1)
# CHECK: .set at=$13
# CHECK: lui $13, 1
# CHECK: addu $13, $13, $1
# CHECK: lw $1, 0($13)
.set at=$13
lw $1, 65536($1)
# CHECK: .set at=$14
# CHECK: lui $14, 1
# CHECK: addu $14, $14, $1
# CHECK: lw $1, 0($14)
.set at=$14
lw $1, 65536($1)
# CHECK: .set at=$15
# CHECK: lui $15, 1
# CHECK: addu $15, $15, $1
# CHECK: lw $1, 0($15)
.set at=$15
lw $1, 65536($1)
# CHECK: .set at=$16
# CHECK: lui $16, 1
# CHECK: addu $16, $16, $1
# CHECK: lw $1, 0($16)
.set at=$s0
lw $1, 65536($1)
# CHECK: .set at=$17
# CHECK: lui $17, 1
# CHECK: addu $17, $17, $1
# CHECK: lw $1, 0($17)
.set at=$s1
lw $1, 65536($1)
# CHECK: .set at=$18
# CHECK: lui $18, 1
# CHECK: addu $18, $18, $1
# CHECK: lw $1, 0($18)
.set at=$s2
lw $1, 65536($1)
# CHECK: .set at=$19
# CHECK: lui $19, 1
# CHECK: addu $19, $19, $1
# CHECK: lw $1, 0($19)
.set at=$s3
lw $1, 65536($1)
# CHECK: .set at=$20
# CHECK: lui $20, 1
# CHECK: addu $20, $20, $1
# CHECK: lw $1, 0($20)
.set at=$s4
lw $1, 65536($1)
# CHECK: .set at=$21
# CHECK: lui $21, 1
# CHECK: addu $21, $21, $1
# CHECK: lw $1, 0($21)
.set at=$s5
lw $1, 65536($1)
# CHECK: .set at=$22
# CHECK: lui $22, 1
# CHECK: addu $22, $22, $1
# CHECK: lw $1, 0($22)
.set at=$s6
lw $1, 65536($1)
# CHECK: .set at=$23
# CHECK: lui $23, 1
# CHECK: addu $23, $23, $1
# CHECK: lw $1, 0($23)
.set at=$s7
lw $1, 65536($1)
# CHECK: .set at=$24
# CHECK: lui $24, 1
# CHECK: addu $24, $24, $1
# CHECK: lw $1, 0($24)
.set at=$24
lw $1, 65536($1)
# CHECK: .set at=$25
# CHECK: lui $25, 1
# CHECK: addu $25, $25, $1
# CHECK: lw $1, 0($25)
.set at=$25
lw $1, 65536($1)
# CHECK: .set at=$26
# CHECK: lui $26, 1
# CHECK: addu $26, $26, $1
# CHECK: lw $1, 0($26)
.set at=$26
lw $1, 65536($1)
# CHECK: .set at=$27
# CHECK: lui $27, 1
# CHECK: addu $27, $27, $1
# CHECK: lw $1, 0($27)
.set at=$27
lw $1, 65536($1)
# CHECK: .set at=$28
# CHECK: lui $gp, 1
# CHECK: addu $gp, $gp, $1
# CHECK: lw $1, 0($gp)
.set at=$gp
lw $1, 65536($1)
# CHECK: .set at=$30
# CHECK: lui $fp, 1
# CHECK: addu $fp, $fp, $1
# CHECK: lw $1, 0($fp)
.set at=$fp
lw $1, 65536($1)
# CHECK: .set at=$29
# CHECK: lui $sp, 1
# CHECK: addu $sp, $sp, $1
# CHECK: lw $1, 0($sp)
.set at=$sp
lw $1, 65536($1)
# CHECK: .set at=$31
# CHECK: lui $ra, 1
# CHECK: addu $ra, $ra, $1
# CHECK: lw $1, 0($ra)
.set at=$ra
lw $1, 65536($1)