| # RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 \ | |
| # RUN: 2>%t1 | FileCheck %s | |
| # RUN: FileCheck -check-prefix=WARNINGS %s < %t1 | |
| # Check that the assembler can handle the documented syntax for ".set at" and | |
| # will set the correct value for $at. | |
| # Note that writing $at is always the same as writing $1. | |
| .text | |
| foo: | |
| # CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] | |
| # WARNINGS: :[[@LINE+2]]:11: warning: used $at (currently $1) without ".set noat" | |
| .set at=$1 | |
| jr $at | |
| # CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] | |
| # WARNINGS: :[[@LINE+2]]:11: warning: used $at (currently $1) without ".set noat" | |
| .set at=$1 | |
| jr $1 | |
| # CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] | |
| # WARNINGS: :[[@LINE+2]]:11: warning: used $at (currently $1) without ".set noat" | |
| .set at=$at | |
| jr $at | |
| # CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] | |
| # WARNINGS: :[[@LINE+2]]:11: warning: used $at (currently $1) without ".set noat" | |
| .set at=$at | |
| jr $1 | |
| # WARNINGS-NOT: warning: used $at (currently ${{[0-9]+}}) without ".set noat" | |
| # CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] | |
| .set at=$2 | |
| jr $at | |
| # CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] | |
| .set at=$3 | |
| jr $at | |
| # CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] | |
| .set noat | |
| jr $at | |
| # CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] | |
| .set at=$0 | |
| jr $at | |
| # CHECK: jr $16 # encoding: [0x08,0x00,0x00,0x02] | |
| # WARNINGS: :[[@LINE+2]]:11: warning: used $at (currently $16) without ".set noat" | |
| .set at=$16 | |
| jr $s0 | |
| # CHECK: jr $16 # encoding: [0x08,0x00,0x00,0x02] | |
| # WARNINGS: :[[@LINE+2]]:11: warning: used $at (currently $16) without ".set noat" | |
| .set at=$16 | |
| jr $16 |