[mips] Print warning when using register names not available in N32/64
[oota-llvm.git] / test / MC / Mips / mips64-register-names-n32-n64.s
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:     -mattr=-n64,+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)