Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: tests_lit/assembler/arm32/mov-imm.ll

Issue 1397043003: Fix emission of move immediate for ARM integrated assembler. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Clean up header file for IceAssemblerARM. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/IceInstARM32.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 ; Show that we know how to translate move (immediate) ARM instruction.
2
3 ; RUN: %p2i --filetype=asm -i %s --target=arm32 \
4 ; RUN: | FileCheck %s --check-prefix=ASM
5 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 \
6 ; RUN: | FileCheck %s --check-prefix=IASM
7
8 define internal i32 @Imm1() {
9 ret i32 1
10 }
11
12 ; ASM-LABEL: Imm1:
13 ; ASM: mov r0, #1
14 ; IASM-LABEL: Imm1:
15 ; IASM: .byte 0x1
16 ; IASM: .byte 0x0
17 ; IASM: .byte 0xa0
18 ; IASM: .byte 0xe3
19
20
21 define internal i32 @rotateFImmAA() {
22 ; immediate = 0x000002a8 = b 0000 0000 0000 0000 0000 0010 1010 1000
23 ret i32 680
24 }
25
26 ; ASM-LABEL: rotateFImmAA:
27 ; ASM: mov r0, #680
28
29 ; IASM-LABEL: rotateFImmAA:
30 ; IASM: .byte 0xaa
31 ; IASM: .byte 0xf
32 ; IASM: .byte 0xa0
33 ; IASM: .byte 0xe3
34
35 define internal i32 @rotateEImmAA() {
36 ; immediate = 0x00000aa0 = b 0000 0000 0000 0000 0000 1010 1010 0000
37 ret i32 2720
38 }
39
40 ; ASM-LABEL: rotateEImmAA:
41 ; ASM: mov r0, #2720
42
43 ; IASM-LABEL: rotateEImmAA:
44 ; IASM: .byte 0xaa
45 ; IASM: .byte 0xe
46 ; IASM: .byte 0xa0
47 ; IASM: .byte 0xe3
48
49 define internal i32 @rotateDImmAA() {
50 ; immediate = 0x00002a80 = b 0000 0000 0000 0000 0010 1010 1000 0000
51 ret i32 10880
52 }
53
54 ; ASM-LABEL: rotateDImmAA:
55 ; ASM: mov r0, #10880
56
57 ; IASM-LABEL: rotateDImmAA:
58 ; IASM: .byte 0xaa
59 ; IASM: .byte 0xd
60 ; IASM: .byte 0xa0
61 ; IASM: .byte 0xe3
62
63 define internal i32 @rotateCImmAA() {
64 ; immediate = 0x0000aa00 = b 0000 0000 0000 0000 1010 1010 0000 0000
65 ret i32 43520
66 }
67
68 ; ASM-LABEL: rotateCImmAA:
69 ; ASM: mov r0, #43520
70
71 ; IASM-LABEL: rotateCImmAA:
72 ; IASM: .byte 0xaa
73 ; IASM: .byte 0xc
74 ; IASM: .byte 0xa0
75 ; IASM: .byte 0xe3
76
77 define internal i32 @rotateBImmAA() {
78 ; immediate = 0x0002a800 = b 0000 0000 0000 0010 1010 1000 0000 0000
79 ret i32 174080
80 }
81
82 ; ASM-LABEL: rotateBImmAA:
83 ; ASM: mov r0, #174080
84
85 ; IASM-LABEL: rotateBImmAA:
86 ; IASM: .byte 0xaa
87 ; IASM: .byte 0xb
88 ; IASM: .byte 0xa0
89 ; IASM: .byte 0xe3
90
91 define internal i32 @rotateAImmAA() {
92 ; immediate = 0x000aa000 = b 0000 0000 0000 1010 1010 0000 0000 0000
93 ret i32 696320
94 }
95
96 ; ASM-LABEL: rotateAImmAA:
97 ; ASM: mov r0, #696320
98
99 ; IASM-LABEL: rotateAImmAA:
100 ; IASM: .byte 0xaa
101 ; IASM: .byte 0xa
102 ; IASM: .byte 0xa0
103 ; IASM: .byte 0xe3
104
105 define internal i32 @rotate9ImmAA() {
106 ; immediate = 0x002a8000 = b 0000 0000 0010 1010 1000 0000 0000 0000
107 ret i32 2785280
108 }
109
110 ; ASM-LABEL: rotate9ImmAA:
111 ; ASM: mov r0, #2785280
112
113 ; IASM-LABEL: rotate9ImmAA:
114 ; IASM: .byte 0xaa
115 ; IASM: .byte 0x9
116 ; IASM: .byte 0xa0
117 ; IASM: .byte 0xe3
118
119 define internal i32 @rotate8ImmAA() {
120 ; immediate = 0x00aa0000 = b 0000 0000 1010 1010 0000 0000 0000 0000
121 ret i32 11141120
122 }
123
124 ; ASM-LABEL: rotate8ImmAA:
125 ; ASM: mov r0, #11141120
126
127 ; IASM-LABEL: rotate8ImmAA:
128 ; IASM: .byte 0xaa
129 ; IASM: .byte 0x8
130 ; IASM: .byte 0xa0
131 ; IASM: .byte 0xe3
132
133 define internal i32 @rotate7ImmAA() {
134 ; immediate = 0x02a80000 = b 0000 0010 1010 1000 0000 0000 0000 0000
135 ret i32 44564480
136 }
137
138 ; ASM-LABEL: rotate7ImmAA:
139 ; ASM: mov r0, #44564480
140
141 ; IASM-LABEL: rotate7ImmAA:
142 ; IASM: .byte 0xaa
143 ; IASM: .byte 0x7
144 ; IASM: .byte 0xa0
145 ; IASM: .byte 0xe3
146
147 define internal i32 @rotate6ImmAA() {
148 ; immediate = 0x0aa00000 = b 0000 1010 1010 0000 0000 0000 0000 0000
149 ret i32 178257920
150 }
151
152 ; ASM-LABEL: rotate6ImmAA:
153 ; ASM: mov r0, #178257920
154
155 ; IASM-LABEL: rotate6ImmAA:
156 ; IASM: .byte 0xaa
157 ; IASM: .byte 0x6
158 ; IASM: .byte 0xa0
159 ; IASM: .byte 0xe3
160
161 define internal i32 @rotate5ImmAA() {
162 ; immediate = 0x2a800000 = b 0010 1010 1000 0000 0000 0000 0000 0000
163 ret i32 713031680
164 }
165
166 ; ASM-LABEL: rotate5ImmAA:
167 ; ASM: mov r0, #713031680
168
169 ; IASM-LABEL: rotate5ImmAA:
170 ; IASM: .byte 0xaa
171 ; IASM: .byte 0x5
172 ; IASM: .byte 0xa0
173 ; IASM: .byte 0xe3
174
175 define internal i32 @rotate4ImmAA() {
176 ; immediate = 0xaa000000 = b 1010 1010 0000 0000 0000 0000 0000 0000
177 ret i32 2852126720
178 }
179
180 ; ASM-LABEL: rotate4ImmAA:
181 ; ASM: mov r0, #2852126720
182
183 ; IASM-LABEL: rotate4ImmAA:
184 ; IASM: .byte 0xaa
185 ; IASM: .byte 0x4
186 ; IASM: .byte 0xa0
187 ; IASM: .byte 0xe3
188
189 define internal i32 @rotate3ImmAA() {
190 ; immediate = 0xa8000002 = b 1010 1000 0000 0000 0000 0000 0000 0010
191 ret i32 2818572290
192 }
193
194 ; ASM-LABEL: rotate3ImmAA:
195 ; ASM: mov r0, #2818572290
196
197 ; IASM-LABEL: rotate3ImmAA:
198 ; IASM: .byte 0xaa
199 ; IASM: .byte 0x3
200 ; IASM: .byte 0xa0
201 ; IASM: .byte 0xe3
202
203 define internal i32 @rotate2ImmAA() {
204 ; immediate = 0xa000000a = b 1010 0000 0000 0000 0000 0000 0000 1010
205 ret i32 2684354570
206 }
207
208 ; ASM-LABEL: rotate2ImmAA:
209 ; ASM: mov r0, #2684354570
210
211 ; IASM-LABEL: rotate2ImmAA:
212 ; IASM: .byte 0xaa
213 ; IASM: .byte 0x2
214 ; IASM: .byte 0xa0
215 ; IASM: .byte 0xe3
216
217 define internal i32 @rotate1ImmAA() {
218 ; immediate = 0x8000002a = b 1000 1000 0000 0000 0000 0000 0010 1010
219 ret i32 2147483690
220 }
221
222 ; ASM-LABEL: rotate1ImmAA:
223 ; ASM: mov r0, #2147483690
224
225 ; IASM-LABEL: rotate1ImmAA:
226 ; IASM: .byte 0xaa
227 ; IASM: .byte 0x1
228 ; IASM: .byte 0xa0
229 ; IASM: .byte 0xe3
230
231 define internal i32 @rotate0ImmAA() {
232 ; immediate = 0x000000aa = b 0000 0000 0000 0000 0000 0000 1010 1010
233 ret i32 170
234 }
235
236 ; ASM-LABEL: rotate0ImmAA:
237 ; ASM: mov r0, #170
238
239 ; IASM-LABEL: rotate0ImmAA:
240 ; IASM: .byte 0xaa
241 ; IASM: .byte 0x0
242 ; IASM: .byte 0xa0
243 ; IASM: .byte 0xe3
OLDNEW
« no previous file with comments | « src/IceInstARM32.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698