Home | History | Annotate | Download | only in Mips
      1 # RUN: llvm-mc %s -triple=mips64-unknown-freebsd -show-encoding 2>%t0 \
      2 # RUN:     | FileCheck %s
      3 # RUN: FileCheck -check-prefix=WARNING %s < %t0
      4 #
      5 # RUN: llvm-mc %s -triple=mips64-unknown-freebsd -show-encoding \
      6 # RUN:     -target-abi n32 2>%t1 | FileCheck %s
      7 # RUN: FileCheck -check-prefix=WARNING %s < %t1
      8 #
      9 # Check that the register names are mapped to their correct numbers for n32/n64
     10 # Second byte of addiu with $zero at rt contains the number of the source
     11 # register.
     12 
     13 .set noat
     14 daddiu	$zero, $zero, 0     # CHECK: encoding: [0x64,0x00,0x00,0x00]
     15 daddiu	$at, $zero, 0       # CHECK: encoding: [0x64,0x01,0x00,0x00]
     16 daddiu	$v0, $zero, 0       # CHECK: encoding: [0x64,0x02,0x00,0x00]
     17 daddiu	$v1, $zero, 0       # CHECK: encoding: [0x64,0x03,0x00,0x00]
     18 daddiu	$a0, $zero, 0       # CHECK: encoding: [0x64,0x04,0x00,0x00]
     19 daddiu	$a1, $zero, 0       # CHECK: encoding: [0x64,0x05,0x00,0x00]
     20 daddiu	$a2, $zero, 0       # CHECK: encoding: [0x64,0x06,0x00,0x00]
     21 daddiu	$a3, $zero, 0       # CHECK: encoding: [0x64,0x07,0x00,0x00]
     22 daddiu	$a4, $zero, 0       # CHECK: encoding: [0x64,0x08,0x00,0x00]
     23 daddiu	$a5, $zero, 0       # CHECK: encoding: [0x64,0x09,0x00,0x00]
     24 daddiu	$a6, $zero, 0       # CHECK: encoding: [0x64,0x0a,0x00,0x00]
     25 daddiu	$a7, $zero, 0       # CHECK: encoding: [0x64,0x0b,0x00,0x00]
     26 daddiu	$t0, $zero, 0 # [*] # CHECK: encoding: [0x64,0x0c,0x00,0x00]
     27 daddiu	$t1, $zero, 0 # [*] # CHECK: encoding: [0x64,0x0d,0x00,0x00]
     28 daddiu	$t2, $zero, 0 # [*] # CHECK: encoding: [0x64,0x0e,0x00,0x00]
     29 daddiu	$t3, $zero, 0 # [*] # CHECK: encoding: [0x64,0x0f,0x00,0x00]
     30 # WARNING: mips64-register-names-n32-n64.s:[[@LINE+4]]:9: warning: register names $t4-$t7 are only available in O32.
     31 # WARNING-NEXT: daddiu  $t4, $zero, 0       # {{CHECK}}: encoding: [0x64,0x0c,0x00,0x00]
     32 # WARNING-NEXT:          ^~
     33 # WARNING-NEXT:          Did you mean $t0?
     34 daddiu	$t4, $zero, 0       # CHECK: encoding: [0x64,0x0c,0x00,0x00]
     35 # WARNING: mips64-register-names-n32-n64.s:[[@LINE+4]]:9: warning: register names $t4-$t7 are only available in O32.
     36 # WARNING-NEXT: daddiu  $t5, $zero, 0       # {{CHECK}}: encoding: [0x64,0x0d,0x00,0x00]
     37 # WARNING-NEXT:          ^~
     38 # WARNING-NEXT:          Did you mean $t1?
     39 daddiu	$t5, $zero, 0       # CHECK: encoding: [0x64,0x0d,0x00,0x00]
     40 # WARNING: mips64-register-names-n32-n64.s:[[@LINE+4]]:9: warning: register names $t4-$t7 are only available in O32.
     41 # WARNING-NEXT: daddiu  $t6, $zero, 0       # {{CHECK}}: encoding: [0x64,0x0e,0x00,0x00]
     42 # WARNING-NEXT:          ^~
     43 # WARNING-NEXT:          Did you mean $t2?
     44 daddiu	$t6, $zero, 0       # CHECK: encoding: [0x64,0x0e,0x00,0x00]
     45 # WARNING: mips64-register-names-n32-n64.s:[[@LINE+4]]:9: warning: register names $t4-$t7 are only available in O32.
     46 # WARNING-NEXT: daddiu  $t7, $zero, 0       # {{CHECK}}: encoding: [0x64,0x0f,0x00,0x00]
     47 # WARNING-NEXT:          ^~
     48 # WARNING-NEXT:          Did you mean $t3?
     49 daddiu	$t7, $zero, 0       # CHECK: encoding: [0x64,0x0f,0x00,0x00]
     50 daddiu	$s0, $zero, 0       # CHECK: encoding: [0x64,0x10,0x00,0x00]
     51 daddiu	$s1, $zero, 0       # CHECK: encoding: [0x64,0x11,0x00,0x00]
     52 daddiu	$s2, $zero, 0       # CHECK: encoding: [0x64,0x12,0x00,0x00]
     53 daddiu	$s3, $zero, 0       # CHECK: encoding: [0x64,0x13,0x00,0x00]
     54 daddiu	$s4, $zero, 0       # CHECK: encoding: [0x64,0x14,0x00,0x00]
     55 daddiu	$s5, $zero, 0       # CHECK: encoding: [0x64,0x15,0x00,0x00]
     56 daddiu	$s6, $zero, 0       # CHECK: encoding: [0x64,0x16,0x00,0x00]
     57 daddiu	$s7, $zero, 0       # CHECK: encoding: [0x64,0x17,0x00,0x00]
     58 daddiu	$t8, $zero, 0       # CHECK: encoding: [0x64,0x18,0x00,0x00]
     59 daddiu	$t9, $zero, 0       # CHECK: encoding: [0x64,0x19,0x00,0x00]
     60 daddiu	$kt0, $zero, 0      # CHECK: encoding: [0x64,0x1a,0x00,0x00]
     61 daddiu	$kt1, $zero, 0      # CHECK: encoding: [0x64,0x1b,0x00,0x00]
     62 daddiu	$gp, $zero, 0       # CHECK: encoding: [0x64,0x1c,0x00,0x00]
     63 daddiu	$sp, $zero, 0       # CHECK: encoding: [0x64,0x1d,0x00,0x00]
     64 daddiu	$s8, $zero, 0       # CHECK: encoding: [0x64,0x1e,0x00,0x00]
     65 daddiu	$fp, $zero, 0       # CHECK: encoding: [0x64,0x1e,0x00,0x00]
     66 daddiu	$ra, $zero, 0       # CHECK: encoding: [0x64,0x1f,0x00,0x00]
     67 
     68 # [*] - t0-t3 are aliases of t4-t7 for compatibility with both the original
     69 #       ABI documentation (using t4-t7) and GNU As (using t0-t3)
     70