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