1 # Instructions that are invalid.
3 # RUN: not llvm-mc %s -triple mips-unknown-linux-gnu -mcpu=mips32r5 -mattr=+virt 2>%t1
4 # RUN: FileCheck %s < %t1
5 # RUN: not llvm-mc %s -triple mips64-unknown-linux-gnu -mcpu=mips64r5 -mattr=+virt 2>%t1
6 # RUN: FileCheck %s < %t1
7 # RUN: not llvm-mc %s -triple mips-unknown-linux-gnu -mcpu=mips32r5 -mattr=+micromips,+virt 2>%t1
8 # RUN: FileCheck %s < %t1
10 mfgc0
# CHECK: :[[@LINE]]:3: error: too few operands for instruction
11 mfgc0
0 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
12 mfgc0 $
4 # CHECK: :[[@LINE]]:3: error: too few operands for instruction
13 mfgc0
0, $
4 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
14 mfgc0
0, $
4, $
5 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
15 mfgc0 $
4, 0, $
5 # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
16 mfgc0 $
4, $
5, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
17 mfgc0 $
4, $
5, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
18 mfgc0 $
4, $
5, 0($
4) # CHECK: :[[@LINE]]:18: error: invalid operand for instruction
19 mtgc0
# CHECK: :[[@LINE]]:3: error: too few operands for instruction
20 mtgc0
0 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
21 mtgc0 $
4 # CHECK: :[[@LINE]]:3: error: too few operands for instruction
22 mtgc0
0, $
4 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
23 mtgc0
0, $
4, $
5 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
24 mtgc0 $
4, 0, $
5 # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
25 mtgc0 $
4, $
5, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
26 mtgc0 $
4, $
5, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
27 mtgc0 $
4, $
5, 0($
4) # CHECK: :[[@LINE]]:18: error: invalid operand for instruction
28 mfhgc0
# CHECK: :[[@LINE]]:3: error: too few operands for instruction
29 mfhgc0
0 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
30 mfhgc0 $
4 # CHECK: :[[@LINE]]:3: error: too few operands for instruction
31 mfhgc0
0, $
4 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
32 mfhgc0
0, $
4, $
5 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
33 mfhgc0 $
4, 0, $
5 # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
34 mfhgc0 $
4, $
5, 8 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
35 mfhgc0 $
4, $
5, -1 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
36 mfhgc0 $
4, $
5, 0($
4) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
37 mthgc0
# CHECK: :[[@LINE]]:3: error: too few operands for instruction
38 mthgc0
0 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
39 mthgc0 $
4 # CHECK: :[[@LINE]]:3: error: too few operands for instruction
40 mthgc0
0, $
4 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
41 mthgc0
0, $
4, $
5 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
42 mthgc0 $
4, 0, $
5 # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
43 mthgc0 $
4, $
5, 8 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
44 mthgc0 $
4, $
5, -1 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
45 mthgc0 $
4, $
5, 0($
4) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
46 hypcall $
4 # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
47 hypcall
0, $
4 # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
48 hypcall
0, $
4, $
5 # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
49 hypcall $
4, 0, $
5 # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
50 hypcall $
4, $
5, 8 # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
51 hypcall $
4, $
5, -1 # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
52 hypcall $
4, $
5, 0($
4) # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
53 hypcall
2048 # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
54 hypcall
-1 # CHECK: :[[@LINE]]:11: error: expected 10-bit unsigned immediate
55 hypcall
0($
4) # CHECK: :[[@LINE]]:12: error: unexpected token in argument list
56 tlbginv
0 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
57 tlbginv $
4 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
58 tlbginv
0, $
4 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
59 tlbginv
0, $
4, $
5 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
60 tlbginv $
4, 0, $
5 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
61 tlbginv $
4, $
5, 8 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
62 tlbginv $
4, $
5, -1 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
63 tlbginv $
4, $
5, 0($
4) # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
64 tlbginvf
0 # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
65 tlbginvf $
4 # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
66 tlbginvf
0, $
4 # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
67 tlbginvf
0, $
4, $
5 # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
68 tlbginvf $
4, 0, $
5 # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
69 tlbginvf $
4, $
5, 8 # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
70 tlbginvf $
4, $
5, -1 # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
71 tlbginvf $
4, $
5, 0($
4) # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
72 tlbgp
0 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
73 tlbgp $
4 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
74 tlbgp
0, $
4 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
75 tlbgp
0, $
4, $
5 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
76 tlbgp $
4, 0, $
5 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
77 tlbgp $
4, $
5, 8 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
78 tlbgp $
4, $
5, -1 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
79 tlbgp $
4, $
5, 0($
4) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
80 tlbgr
0 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
81 tlbgr $
4 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
82 tlbgr
0, $
4 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
83 tlbgr
0, $
4, $
5 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
84 tlbgr $
4, 0, $
5 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
85 tlbgr $
4, $
5, 8 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
86 tlbgr $
4, $
5, -1 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
87 tlbgr $
4, $
5, 0($
4) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
88 tlbgwi
0 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
89 tlbgwi $
4 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
90 tlbgwi
0, $
4 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
91 tlbgwi
0, $
4, $
5 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
92 tlbgwi $
4, 0, $
5 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
93 tlbgwi $
4, $
5, 8 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
94 tlbgwi $
4, $
5, -1 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
95 tlbgwi $
4, $
5, 0($
4) # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
96 tlbgwr
0 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
97 tlbgwr $
4 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
98 tlbgwr
0, $
4 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
99 tlbgwr
0, $
4, $
5 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
100 tlbgwr $
4, 0, $
5 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
101 tlbgwr $
4, $
5, 8 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
102 tlbgwr $
4, $
5, -1 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction
103 tlbgwr $
4, $
5, 0($
4) # CHECK: :[[@LINE]]:10: error: invalid operand for instruction