1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/MC/Mips/set-push-pop-directives.s
Toma Tabacu 7b4aafeb51 [mips] Add assembler support for .set push/pop directive.
Summary:
These directives are used to save the current assembler options (in the case of ".set push") and restore the previously saved options (in the case of ".set pop").

Contains work done by Matheus Almeida.

Reviewers: dsanders

Reviewed By: dsanders

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

llvm-svn: 217432
2014-09-09 10:15:38 +00:00

54 lines
1.4 KiB
ArmAsm

# RUN: llvm-mc %s -triple=mipsel-unknown-linux -mcpu=mips32r2 -mattr=+msa | \
# RUN: FileCheck %s
# .set push creates a copy of the current environment.
# .set pop restores the previous environment.
# FIXME: Also test resetting of .set macro/nomacro option.
.text
# The first environment on the stack (with initial values).
lw $1, 65536($1)
b 1336
addvi.b $w15, $w13, 18
# Create a new environment.
.set push
.set at=$ra # Test the ATReg option.
lw $1, 65536($1)
.set noreorder # Test the Reorder option.
b 1336
.set nomsa # Test the Features option (ASE).
.set mips32r6 # Test the Features option (ISA).
mod $2, $4, $6
# Switch back to the first environment.
.set pop
lw $1, 65536($1)
b 1336
addvi.b $w15, $w13, 18
# CHECK: lui $1, 1
# CHECK: addu $1, $1, $1
# CHECK: lw $1, 0($1)
# CHECK: b 1336
# CHECK: nop
# CHECK: addvi.b $w15, $w13, 18
# CHECK: .set push
# CHECK: lui $ra, 1
# CHECK: addu $ra, $ra, $1
# CHECK: lw $1, 0($ra)
# CHECK: .set noreorder
# CHECK: b 1336
# CHECK-NOT: nop
# CHECK: .set nomsa
# CHECK: .set mips32r6
# CHECK: mod $2, $4, $6
# CHECK: .set pop
# CHECK: lui $1, 1
# CHECK: addu $1, $1, $1
# CHECK: lw $1, 0($1)
# CHECK: b 1336
# CHECK: nop
# CHECK: addvi.b $w15, $w13, 18