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