1*9880d681SAndroid Build Coastguard Worker# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 \ 2*9880d681SAndroid Build Coastguard Worker# RUN: 2>%t1 | FileCheck %s 3*9880d681SAndroid Build Coastguard Worker# RUN: FileCheck -check-prefix=WARNINGS %s < %t1 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker# Check that the assembler can handle the documented syntax for ".set at" and 6*9880d681SAndroid Build Coastguard Worker# will set the correct value for $at. 7*9880d681SAndroid Build Coastguard Worker# Note that writing $at is always the same as writing $1. 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker .text 10*9880d681SAndroid Build Coastguard Workerfoo: 11*9880d681SAndroid Build Coastguard Worker# CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] 12*9880d681SAndroid Build Coastguard Worker# WARNINGS: :[[@LINE+2]]:11: warning: used $at (currently $1) without ".set noat" 13*9880d681SAndroid Build Coastguard Worker .set at=$1 14*9880d681SAndroid Build Coastguard Worker jr $at 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Worker# CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] 17*9880d681SAndroid Build Coastguard Worker# WARNINGS: :[[@LINE+2]]:11: warning: used $at (currently $1) without ".set noat" 18*9880d681SAndroid Build Coastguard Worker .set at=$1 19*9880d681SAndroid Build Coastguard Worker jr $1 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker# CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] 22*9880d681SAndroid Build Coastguard Worker# WARNINGS: :[[@LINE+2]]:11: warning: used $at (currently $1) without ".set noat" 23*9880d681SAndroid Build Coastguard Worker .set at=$at 24*9880d681SAndroid Build Coastguard Worker jr $at 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker# CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] 27*9880d681SAndroid Build Coastguard Worker# WARNINGS: :[[@LINE+2]]:11: warning: used $at (currently $1) without ".set noat" 28*9880d681SAndroid Build Coastguard Worker .set at=$at 29*9880d681SAndroid Build Coastguard Worker jr $1 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker# WARNINGS-NOT: warning: used $at (currently ${{[0-9]+}}) without ".set noat" 32*9880d681SAndroid Build Coastguard Worker# CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] 33*9880d681SAndroid Build Coastguard Worker .set at=$2 34*9880d681SAndroid Build Coastguard Worker jr $at 35*9880d681SAndroid Build Coastguard Worker# CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] 36*9880d681SAndroid Build Coastguard Worker .set at=$3 37*9880d681SAndroid Build Coastguard Worker jr $at 38*9880d681SAndroid Build Coastguard Worker# CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] 39*9880d681SAndroid Build Coastguard Worker .set noat 40*9880d681SAndroid Build Coastguard Worker jr $at 41*9880d681SAndroid Build Coastguard Worker# CHECK: jr $1 # encoding: [0x08,0x00,0x20,0x00] 42*9880d681SAndroid Build Coastguard Worker .set at=$0 43*9880d681SAndroid Build Coastguard Worker jr $at 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Worker# CHECK: jr $16 # encoding: [0x08,0x00,0x00,0x02] 46*9880d681SAndroid Build Coastguard Worker# WARNINGS: :[[@LINE+2]]:11: warning: used $at (currently $16) without ".set noat" 47*9880d681SAndroid Build Coastguard Worker .set at=$16 48*9880d681SAndroid Build Coastguard Worker jr $s0 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Worker# CHECK: jr $16 # encoding: [0x08,0x00,0x00,0x02] 51*9880d681SAndroid Build Coastguard Worker# WARNINGS: :[[@LINE+2]]:11: warning: used $at (currently $16) without ".set noat" 52*9880d681SAndroid Build Coastguard Worker .set at=$16 53*9880d681SAndroid Build Coastguard Worker jr $16 54