Home | History | Annotate | Download | only in Mips
      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
     54