xref: /llvm-project/llvm/test/MC/Mips/set-push-pop-directives.s (revision 465acfd13c5d009a90b916557ce204a4758bff74)
19db22db9SToma Tabacu# RUN: llvm-mc %s -triple=mipsel-unknown-linux -mcpu=mips32r2 -mattr=+msa | \
29db22db9SToma Tabacu# RUN:   FileCheck %s
39db22db9SToma Tabacu# .set push creates a copy of the current environment.
49db22db9SToma Tabacu# .set pop restores the previous environment.
59db22db9SToma Tabacu# FIXME: Also test resetting of .set macro/nomacro option.
69db22db9SToma Tabacu
79db22db9SToma Tabacu    .text
89db22db9SToma Tabacu    # The first environment on the stack (with initial values).
99db22db9SToma Tabacu    lw       $1, 65536($1)
109db22db9SToma Tabacu    b        1336
119db22db9SToma Tabacu    addvi.b  $w15, $w13, 18
129db22db9SToma Tabacu
139db22db9SToma Tabacu    # Create a new environment.
149db22db9SToma Tabacu    .set push
159db22db9SToma Tabacu    .set at=$ra           # Test the ATReg option.
169db22db9SToma Tabacu    lw       $1, 65536($1)
179db22db9SToma Tabacu    .set noreorder        # Test the Reorder option.
189db22db9SToma Tabacu    b        1336
199db22db9SToma Tabacu    .set nomsa            # Test the Features option (ASE).
209db22db9SToma Tabacu    .set mips32r6         # Test the Features option (ISA).
219db22db9SToma Tabacu    mod      $2, $4, $6
229db22db9SToma Tabacu
239db22db9SToma Tabacu    # Switch back to the first environment.
249db22db9SToma Tabacu    .set pop
259db22db9SToma Tabacu    lw       $1, 65536($1)
269db22db9SToma Tabacu    b        1336
279db22db9SToma Tabacu    addvi.b  $w15, $w13, 18
289db22db9SToma Tabacu
299db22db9SToma Tabacu# CHECK:  lui      $1, 1
309db22db9SToma Tabacu# CHECK:  addu     $1, $1, $1
319db22db9SToma Tabacu# CHECK:  lw       $1, 0($1)
329db22db9SToma Tabacu# CHECK:  b        1336
339db22db9SToma Tabacu# CHECK:  nop
349db22db9SToma Tabacu# CHECK:  addvi.b  $w15, $w13, 18
359db22db9SToma Tabacu
369db22db9SToma Tabacu# CHECK:  .set push
379db22db9SToma Tabacu# CHECK:  lui      $ra, 1
389db22db9SToma Tabacu# CHECK:  addu     $ra, $ra, $1
399db22db9SToma Tabacu# CHECK:  lw       $1, 0($ra)
409db22db9SToma Tabacu# CHECK:  .set noreorder
419db22db9SToma Tabacu# CHECK:  b        1336
429db22db9SToma Tabacu# CHECK-NOT:  nop
439db22db9SToma Tabacu# CHECK:  .set nomsa
449db22db9SToma Tabacu# CHECK:  .set mips32r6
459db22db9SToma Tabacu# CHECK:  mod      $2, $4, $6
469db22db9SToma Tabacu
479db22db9SToma Tabacu# CHECK:  .set pop
489db22db9SToma Tabacu# CHECK:  lui      $1, 1
499db22db9SToma Tabacu# CHECK:  addu     $1, $1, $1
509db22db9SToma Tabacu# CHECK:  lw       $1, 0($1)
519db22db9SToma Tabacu# CHECK:  b        1336
529db22db9SToma Tabacu# CHECK:  nop
539db22db9SToma Tabacu# CHECK:  addvi.b  $w15, $w13, 18
54*465acfd1SToma Tabacu
55*465acfd1SToma Tabacu    .set push
56*465acfd1SToma Tabacu    .set dsp
57*465acfd1SToma Tabacu    lbux    $7, $10($11)
58*465acfd1SToma Tabacu    .set pop
59*465acfd1SToma Tabacu
60*465acfd1SToma Tabacu    .set push
61*465acfd1SToma Tabacu    .set dsp
62*465acfd1SToma Tabacu    lbux    $7, $10($11)
63*465acfd1SToma Tabacu# CHECK-NOT: :[[@LINE-1]]:5: error: instruction requires a CPU feature not currently enabled
64*465acfd1SToma Tabacu    .set pop
65*465acfd1SToma Tabacu
66*465acfd1SToma Tabacu    .set push
67*465acfd1SToma Tabacu    .set dsp
68*465acfd1SToma Tabacu    lbux    $7, $10($11)
69*465acfd1SToma Tabacu# CHECK-NOT: :[[@LINE-1]]:5: error: instruction requires a CPU feature not currently enabled
70*465acfd1SToma Tabacu    .set pop
71