• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
2
3# In the microblaze instruction set, any TYPE-B instruction with a
4# signed immediate value requiring more than 16-bits must be prefixed
5# with an IMM instruction that contains the high 16-bits. The higher
6# 16-bits are then combined with the lower 16-bits in the original
7# instruction to form a 32-bit immediate value.
8#
9# The generation of IMM instructions is handled automatically by the
10# code emitter. Test to ensure that IMM instructions are generated
11# when they are suppose to and are not generated when they are not
12# needed.
13
14# CHECK:    addi
15# BINARY:   001000 00000 00000 0000000000000000
16# CHECK:    encoding: [0x20,0x00,0x00,0x00]
17            addi    r0, r0, 0x00000000
18
19# CHECK:    addi
20# BINARY:   001000 00000 00000 0000000000000001
21# CHECK:    encoding: [0x20,0x00,0x00,0x01]
22            addi    r0, r0, 0x00000001
23
24# CHECK:    addi
25# BINARY:   001000 00000 00000 0000000000000010
26# CHECK:    encoding: [0x20,0x00,0x00,0x02]
27            addi    r0, r0, 0x00000002
28
29# CHECK:    addi
30# BINARY:   001000 00000 00000 0000000000000100
31# CHECK:    encoding: [0x20,0x00,0x00,0x04]
32            addi    r0, r0, 0x00000004
33
34# CHECK:    addi
35# BINARY:   001000 00000 00000 0000000000001000
36# CHECK:    encoding: [0x20,0x00,0x00,0x08]
37            addi    r0, r0, 0x00000008
38
39# CHECK:    addi
40# BINARY:   001000 00000 00000 0000000000010000
41# CHECK:    encoding: [0x20,0x00,0x00,0x10]
42            addi    r0, r0, 0x00000010
43
44# CHECK:    addi
45# BINARY:   001000 00000 00000 0000000000100000
46# CHECK:    encoding: [0x20,0x00,0x00,0x20]
47            addi    r0, r0, 0x00000020
48
49# CHECK:    addi
50# BINARY:   001000 00000 00000 0000000001000000
51# CHECK:    encoding: [0x20,0x00,0x00,0x40]
52            addi    r0, r0, 0x00000040
53
54# CHECK:    addi
55# BINARY:   001000 00000 00000 0000000010000000
56# CHECK:    encoding: [0x20,0x00,0x00,0x80]
57            addi    r0, r0, 0x00000080
58
59# CHECK:    addi
60# BINARY:   001000 00000 00000 0000000100000000
61# CHECK:    encoding: [0x20,0x00,0x01,0x00]
62            addi    r0, r0, 0x00000100
63
64# CHECK:    addi
65# BINARY:   001000 00000 00000 0000001000000000
66# CHECK:    encoding: [0x20,0x00,0x02,0x00]
67            addi    r0, r0, 0x00000200
68
69# CHECK:    addi
70# BINARY:   001000 00000 00000 0000010000000000
71# CHECK:    encoding: [0x20,0x00,0x04,0x00]
72            addi    r0, r0, 0x00000400
73
74# CHECK:    addi
75# BINARY:   001000 00000 00000 0000100000000000
76# CHECK:    encoding: [0x20,0x00,0x08,0x00]
77            addi    r0, r0, 0x00000800
78
79# CHECK:    addi
80# BINARY:   001000 00000 00000 0001000000000000
81# CHECK:    encoding: [0x20,0x00,0x10,0x00]
82            addi    r0, r0, 0x00001000
83
84# CHECK:    addi
85# BINARY:   001000 00000 00000 0010000000000000
86# CHECK:    encoding: [0x20,0x00,0x20,0x00]
87            addi    r0, r0, 0x00002000
88
89# CHECK:    addi
90# BINARY:   001000 00000 00000 0100000000000000
91# CHECK:    encoding: [0x20,0x00,0x40,0x00]
92            addi    r0, r0, 0x00004000
93
94# CHECK:    addi
95# BINARY:   101100 00000 00000 0000000000000000
96# BINARY:   001000 00000 00000 1000000000000000
97# CHECK:    encoding: [0xb0,0x00,0x00,0x00,0x20,0x00,0x80,0x00]
98            addi    r0, r0, 0x00008000
99
100# CHECK:    addi
101# BINARY:   101100 00000 00000 0000000000000001
102#           001000 00000 00000 0000000000000000
103# CHECK:    encoding: [0xb0,0x00,0x00,0x01,0x20,0x00,0x00,0x00]
104            addi    r0, r0, 0x00010000
105
106# CHECK:    addi
107# BINARY:   101100 00000 00000 0000000000000010
108#           001000 00000 00000 0000000000000000
109# CHECK:    encoding: [0xb0,0x00,0x00,0x02,0x20,0x00,0x00,0x00]
110            addi    r0, r0, 0x00020000
111
112# CHECK:    addi
113# BINARY:   101100 00000 00000 0000000000000100
114#           001000 00000 00000 0000000000000000
115# CHECK:    encoding: [0xb0,0x00,0x00,0x04,0x20,0x00,0x00,0x00]
116            addi    r0, r0, 0x00040000
117
118# CHECK:    addi
119# BINARY:   101100 00000 00000 0000000000001000
120#           001000 00000 00000 0000000000000000
121# CHECK:    encoding: [0xb0,0x00,0x00,0x08,0x20,0x00,0x00,0x00]
122            addi    r0, r0, 0x00080000
123
124# CHECK:    addi
125# BINARY:   101100 00000 00000 0000000000010000
126#           001000 00000 00000 0000000000000000
127# CHECK:    encoding: [0xb0,0x00,0x00,0x10,0x20,0x00,0x00,0x00]
128            addi    r0, r0, 0x00100000
129
130# CHECK:    addi
131# BINARY:   101100 00000 00000 0000000000100000
132#           001000 00000 00000 0000000000000000
133# CHECK:    encoding: [0xb0,0x00,0x00,0x20,0x20,0x00,0x00,0x00]
134            addi    r0, r0, 0x00200000
135
136# CHECK:    addi
137# BINARY:   101100 00000 00000 0000000001000000
138#           001000 00000 00000 0000000000000000
139# CHECK:    encoding: [0xb0,0x00,0x00,0x40,0x20,0x00,0x00,0x00]
140            addi    r0, r0, 0x00400000
141
142# CHECK:    addi
143# BINARY:   101100 00000 00000 0000000010000000
144#           001000 00000 00000 0000000000000000
145# CHECK:    encoding: [0xb0,0x00,0x00,0x80,0x20,0x00,0x00,0x00]
146            addi    r0, r0, 0x00800000
147
148# CHECK:    addi
149# BINARY:   101100 00000 00000 0000000100000000
150#           001000 00000 00000 0000000000000000
151# CHECK:    encoding: [0xb0,0x00,0x01,0x00,0x20,0x00,0x00,0x00]
152            addi    r0, r0, 0x01000000
153
154# CHECK:    addi
155# BINARY:   101100 00000 00000 0000001000000000
156#           001000 00000 00000 0000000000000000
157# CHECK:    encoding: [0xb0,0x00,0x02,0x00,0x20,0x00,0x00,0x00]
158            addi    r0, r0, 0x02000000
159
160# CHECK:    addi
161# BINARY:   101100 00000 00000 0000010000000000
162#           001000 00000 00000 0000000000000000
163# CHECK:    encoding: [0xb0,0x00,0x04,0x00,0x20,0x00,0x00,0x00]
164            addi    r0, r0, 0x04000000
165
166# CHECK:    addi
167# BINARY:   101100 00000 00000 0000100000000000
168#           001000 00000 00000 0000000000000000
169# CHECK:    encoding: [0xb0,0x00,0x08,0x00,0x20,0x00,0x00,0x00]
170            addi    r0, r0, 0x08000000
171
172# CHECK:    addi
173# BINARY:   101100 00000 00000 0001000000000000
174#           001000 00000 00000 0000000000000000
175# CHECK:    encoding: [0xb0,0x00,0x10,0x00,0x20,0x00,0x00,0x00]
176            addi    r0, r0, 0x10000000
177
178# CHECK:    addi
179# BINARY:   101100 00000 00000 0010000000000000
180#           001000 00000 00000 0000000000000000
181# CHECK:    encoding: [0xb0,0x00,0x20,0x00,0x20,0x00,0x00,0x00]
182            addi    r0, r0, 0x20000000
183
184# CHECK:    addi
185# BINARY:   101100 00000 00000 0100000000000000
186#           001000 00000 00000 0000000000000000
187# CHECK:    encoding: [0xb0,0x00,0x40,0x00,0x20,0x00,0x00,0x00]
188            addi    r0, r0, 0x40000000
189
190# CHECK:    addi
191# BINARY:   101100 00000 00000 1000000000000000
192#           001000 00000 00000 0000000000000000
193# CHECK:    encoding: [0xb0,0x00,0x80,0x00,0x20,0x00,0x00,0x00]
194            addi    r0, r0, 0x80000000
195