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

Side by Side Diff: unittest/AssemblerX8664/GPRArith.cpp

Issue 1669443002: Subzero. Uses fixups to calculate addend to relocations. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Addresses comments. Created 4 years, 10 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
OLDNEW
1 //===- subzero/unittest/AssemblerX8664/GPRArith.cpp -----------------------===// 1 //===- subzero/unittest/AssemblerX8664/GPRArith.cpp -----------------------===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 #include "AssemblerX8664/TestUtil.h" 9 #include "AssemblerX8664/TestUtil.h"
10 10
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 {0x00, 0x06, -0x06, 0x0600, -0x6000, 0x6000000, -0x6000000}) { 215 {0x00, 0x06, -0x06, 0x0600, -0x6000, 0x6000000, -0x6000000}) {
216 TestLeaBaseDisp(r0, 0x22080Fu, Disp, r1); 216 TestLeaBaseDisp(r0, 0x22080Fu, Disp, r1);
217 TestLeaBaseDisp(r1, 0x10000Fu, Disp, r2); 217 TestLeaBaseDisp(r1, 0x10000Fu, Disp, r2);
218 TestLeaBaseDisp(r2, 0x20000Fu, Disp, r3); 218 TestLeaBaseDisp(r2, 0x20000Fu, Disp, r3);
219 TestLeaBaseDisp(r3, 0x30000Fu, Disp, r4); 219 TestLeaBaseDisp(r3, 0x30000Fu, Disp, r4);
220 TestLeaBaseDisp(r4, 0x40000Fu, Disp, r5); 220 TestLeaBaseDisp(r4, 0x40000Fu, Disp, r5);
221 TestLeaBaseDisp(r5, 0x50000Fu, Disp, r6); 221 TestLeaBaseDisp(r5, 0x50000Fu, Disp, r6);
222 TestLeaBaseDisp(r6, 0x60000Fu, Disp, r7); 222 TestLeaBaseDisp(r6, 0x60000Fu, Disp, r7);
223 TestLeaBaseDisp(r7, 0x11000Fu, Disp, r8); 223 TestLeaBaseDisp(r7, 0x11000Fu, Disp, r8);
224 TestLeaBaseDisp(r8, 0x11200Fu, Disp, r10); 224 TestLeaBaseDisp(r8, 0x11200Fu, Disp, r10);
225 TestLeaBaseDisp(r9, 0x000000u, Disp, r10); 225 TestLeaBaseDisp(r9, 0x220400u, Disp, r10);
226 TestLeaBaseDisp(r10, 0x22000Fu, Disp, r11); 226 TestLeaBaseDisp(r10, 0x22000Fu, Disp, r11);
227 TestLeaBaseDisp(r11, 0x22030Fu, Disp, r12); 227 TestLeaBaseDisp(r11, 0x22030Fu, Disp, r12);
228 TestLeaBaseDisp(r12, 0x22040Fu, Disp, r13); 228 TestLeaBaseDisp(r12, 0x22040Fu, Disp, r13);
229 TestLeaBaseDisp(r13, 0x22050Fu, Disp, r14); 229 TestLeaBaseDisp(r13, 0x22050Fu, Disp, r14);
230 TestLeaBaseDisp(r14, 0x22060Fu, Disp, r15); 230 TestLeaBaseDisp(r14, 0x22060Fu, Disp, r15);
231 TestLeaBaseDisp(r15, 0x22070Fu, Disp, r1); 231 TestLeaBaseDisp(r15, 0x22070Fu, Disp, r1);
232 } 232 }
233 233
234 // esp is not a valid index register. 234 // esp is not a valid index register.
235 // ebp is not valid in this addressing mode (rm = 0). 235 // ebp is not valid in this addressing mode (rm = 0).
236 for (const int32_t Disp : 236 for (const int32_t Disp :
237 {0x00, 0x06, -0x06, 0x0600, -0x6000, 0x6000000, -0x6000000}) { 237 {0x00, 0x06, -0x06, 0x0600, -0x6000, 0x6000000, -0x6000000}) {
238 TestLeaIndex32bitDisp(r1, 0x2000u, Disp, r2, r3, r4, r6); 238 TestLeaIndex32bitDisp(r1, 0x2000u, Disp, r2, r3, r4, r6);
239 TestLeaIndex32bitDisp(r2, 0x4010u, Disp, r3, r4, r6, r7); 239 TestLeaIndex32bitDisp(r2, 0x4010u, Disp, r3, r4, r6, r7);
240 TestLeaIndex32bitDisp(r3, 0x6020u, Disp, r4, r6, r7, r5); 240 TestLeaIndex32bitDisp(r3, 0x6020u, Disp, r4, r6, r7, r5);
241 TestLeaIndex32bitDisp(r4, 0x8030u, Disp, r6, r7, r5, r10); 241 TestLeaIndex32bitDisp(r4, 0x8030u, Disp, r6, r7, r5, r10);
242 TestLeaIndex32bitDisp(r6, 0xA040u, Disp, r7, r5, r10, r1); 242 TestLeaIndex32bitDisp(r6, 0xA040u, Disp, r7, r5, r10, r1);
243 TestLeaIndex32bitDisp(r7, 0xC050u, Disp, r5, r10, r1, r11); 243 TestLeaIndex32bitDisp(r7, 0xC050u, Disp, r5, r10, r1, r11);
244 TestLeaIndex32bitDisp(r8, 0xC060u, Disp, r10, r1, r11, r12); 244 TestLeaIndex32bitDisp(r8, 0xC060u, Disp, r10, r1, r11, r12);
245 TestLeaIndex32bitDisp(r9, 0x0000u, Disp, r1, r11, r12, r13); 245 TestLeaIndex32bitDisp(r9, 0xC100u, Disp, r1, r11, r12, r13);
246 TestLeaIndex32bitDisp(r10, 0xC008u, Disp, r11, r12, r13, r14); 246 TestLeaIndex32bitDisp(r10, 0xC008u, Disp, r11, r12, r13, r14);
247 TestLeaIndex32bitDisp(r11, 0xC009u, Disp, r12, r13, r14, r15); 247 TestLeaIndex32bitDisp(r11, 0xC009u, Disp, r12, r13, r14, r15);
248 TestLeaIndex32bitDisp(r12, 0xC00Au, Disp, r13, r14, r15, r1); 248 TestLeaIndex32bitDisp(r12, 0xC00Au, Disp, r13, r14, r15, r1);
249 TestLeaIndex32bitDisp(r13, 0xC00Bu, Disp, r14, r15, r1, r2); 249 TestLeaIndex32bitDisp(r13, 0xC00Bu, Disp, r14, r15, r1, r2);
250 TestLeaIndex32bitDisp(r14, 0xC00Cu, Disp, r15, r1, r2, r3); 250 TestLeaIndex32bitDisp(r14, 0xC00Cu, Disp, r15, r1, r2, r3);
251 TestLeaIndex32bitDisp(r15, 0xC00Du, Disp, r1, r2, r3, r4); 251 TestLeaIndex32bitDisp(r15, 0xC00Du, Disp, r1, r2, r3, r4);
252 } 252 }
253 253
254 for (const int32_t Disp : 254 for (const int32_t Disp :
255 {0x00, 0x06, -0x06, 0x0600, -0x6000, 0x6000000, -0x6000000}) { 255 {0x00, 0x06, -0x06, 0x0600, -0x6000, 0x6000000, -0x6000000}) {
256 TestLeaBaseIndexDisp(r1, 0x100000u, r2, 0x600u, Disp, r3, r4, r6, r7); 256 TestLeaBaseIndexDisp(r1, 0x100000u, r2, 0x600u, Disp, r3, r4, r6, r7);
257 TestLeaBaseIndexDisp(r2, 0x200000u, r3, 0x500u, Disp, r4, r6, r7, r8); 257 TestLeaBaseIndexDisp(r2, 0x200000u, r3, 0x500u, Disp, r4, r6, r7, r8);
258 TestLeaBaseIndexDisp(r3, 0x300000u, r4, 0x400u, Disp, r6, r7, r8, r5); 258 TestLeaBaseIndexDisp(r3, 0x300000u, r4, 0x400u, Disp, r6, r7, r8, r5);
259 TestLeaBaseIndexDisp(r4, 0x400000u, r6, 0x300u, Disp, r7, r8, r5, r10); 259 TestLeaBaseIndexDisp(r4, 0x400000u, r6, 0x300u, Disp, r7, r8, r5, r10);
260 TestLeaBaseIndexDisp(r6, 0x500000u, r7, 0x200u, Disp, r8, r5, r10, r11); 260 TestLeaBaseIndexDisp(r6, 0x500000u, r7, 0x200u, Disp, r8, r5, r10, r11);
261 TestLeaBaseIndexDisp(r7, 0x600000u, r8, 0x100u, Disp, r5, r10, r11, r12); 261 TestLeaBaseIndexDisp(r7, 0x600000u, r8, 0x100u, Disp, r5, r10, r11, r12);
262 TestLeaBaseIndexDisp(r8, 0x600000u, r9, 0x1A0u, Disp, r10, r11, r12, r13); 262 TestLeaBaseIndexDisp(r8, 0x600000u, r9, 0x1A0u, Disp, r10, r11, r12, r13);
263 TestLeaBaseIndexDisp(r9, 0x000000u, r10, 0x1B0u, Disp, r11, r12, r13, r14); 263 TestLeaBaseIndexDisp(r9, 0x600050u, r10, 0x1B0u, Disp, r11, r12, r13, r14);
264 TestLeaBaseIndexDisp(r10, 0x602000u, r11, 0x1C0u, Disp, r12, r13, r14, r15); 264 TestLeaBaseIndexDisp(r10, 0x602000u, r11, 0x1C0u, Disp, r12, r13, r14, r15);
265 TestLeaBaseIndexDisp(r11, 0x603000u, r12, 0x1D0u, Disp, r13, r14, r15, r1); 265 TestLeaBaseIndexDisp(r11, 0x603000u, r12, 0x1D0u, Disp, r13, r14, r15, r1);
266 TestLeaBaseIndexDisp(r12, 0x604000u, r13, 0x1E0u, Disp, r14, r15, r1, r2); 266 TestLeaBaseIndexDisp(r12, 0x604000u, r13, 0x1E0u, Disp, r14, r15, r1, r2);
267 TestLeaBaseIndexDisp(r13, 0x605000u, r14, 0x1F0u, Disp, r15, r1, r2, r3); 267 TestLeaBaseIndexDisp(r13, 0x605000u, r14, 0x1F0u, Disp, r15, r1, r2, r3);
268 TestLeaBaseIndexDisp(r14, 0x606000u, r15, 0x10Au, Disp, r1, r2, r3, r4); 268 TestLeaBaseIndexDisp(r14, 0x606000u, r15, 0x10Au, Disp, r1, r2, r3, r4);
269 TestLeaBaseIndexDisp(r15, 0x607000u, r1, 0x10Bu, Disp, r2, r3, r4, r6); 269 TestLeaBaseIndexDisp(r15, 0x607000u, r1, 0x10Bu, Disp, r2, r3, r4, r6);
270 270
271 TestLeaBaseIndexDisp(r0, 0, r2, 0x600u, Disp, r3, r4, r6, r7); 271 TestLeaBaseIndexDisp(r0, 0, r2, 0x600u, Disp, r3, r4, r6, r7);
272 TestLeaBaseIndexDisp(r0, 0, r3, 0x500u, Disp, r4, r6, r7, r8); 272 TestLeaBaseIndexDisp(r0, 0, r3, 0x500u, Disp, r4, r6, r7, r8);
273 TestLeaBaseIndexDisp(r0, 0, r4, 0x400u, Disp, r6, r7, r8, r5); 273 TestLeaBaseIndexDisp(r0, 0, r4, 0x400u, Disp, r6, r7, r8, r5);
274 TestLeaBaseIndexDisp(r0, 0, r6, 0x300u, Disp, r7, r8, r5, r10); 274 TestLeaBaseIndexDisp(r0, 0, r6, 0x300u, Disp, r7, r8, r5, r10);
275 TestLeaBaseIndexDisp(r0, 0, r7, 0x200u, Disp, r8, r5, r10, r11); 275 TestLeaBaseIndexDisp(r0, 0, r7, 0x200u, Disp, r8, r5, r10, r11);
276 TestLeaBaseIndexDisp(r0, 0, r8, 0x100u, Disp, r5, r10, r11, r12); 276 TestLeaBaseIndexDisp(r0, 0, r8, 0x100u, Disp, r5, r10, r11, r12);
277 TestLeaBaseIndexDisp(r0, 0, r9, 0x000u, Disp, r10, r11, r12, r13); 277 TestLeaBaseIndexDisp(r0, 0, r9, 0x1000u, Disp, r10, r11, r12, r13);
278 TestLeaBaseIndexDisp(r0, 0, r10, 0x1B0u, Disp, r11, r12, r13, r14); 278 TestLeaBaseIndexDisp(r0, 0, r10, 0x1B0u, Disp, r11, r12, r13, r14);
279 TestLeaBaseIndexDisp(r0, 0, r11, 0x1C0u, Disp, r12, r13, r14, r15); 279 TestLeaBaseIndexDisp(r0, 0, r11, 0x1C0u, Disp, r12, r13, r14, r15);
280 TestLeaBaseIndexDisp(r0, 0, r12, 0x1D0u, Disp, r13, r14, r15, r1); 280 TestLeaBaseIndexDisp(r0, 0, r12, 0x1D0u, Disp, r13, r14, r15, r1);
281 TestLeaBaseIndexDisp(r0, 0, r13, 0x1E0u, Disp, r14, r15, r1, r2); 281 TestLeaBaseIndexDisp(r0, 0, r13, 0x1E0u, Disp, r14, r15, r1, r2);
282 TestLeaBaseIndexDisp(r0, 0, r14, 0x1F0u, Disp, r15, r1, r2, r3); 282 TestLeaBaseIndexDisp(r0, 0, r14, 0x1F0u, Disp, r15, r1, r2, r3);
283 TestLeaBaseIndexDisp(r0, 0, r15, 0x10Au, Disp, r1, r2, r3, r4); 283 TestLeaBaseIndexDisp(r0, 0, r15, 0x10Au, Disp, r1, r2, r3, r4);
284 TestLeaBaseIndexDisp(r0, 0, r1, 0x10Bu, Disp, r2, r3, r4, r6); 284 TestLeaBaseIndexDisp(r0, 0, r1, 0x10Bu, Disp, r2, r3, r4, r6);
285 285
286 TestLeaBaseIndexDisp(r5, 0x100000u, r2, 0x600u, Disp, r3, r4, r6, r7); 286 TestLeaBaseIndexDisp(r5, 0x100000u, r2, 0x600u, Disp, r3, r4, r6, r7);
287 TestLeaBaseIndexDisp(r5, 0x200000u, r3, 0x500u, Disp, r4, r6, r7, r8); 287 TestLeaBaseIndexDisp(r5, 0x200000u, r3, 0x500u, Disp, r4, r6, r7, r8);
288 TestLeaBaseIndexDisp(r5, 0x300000u, r4, 0x400u, Disp, r6, r7, r8, r1); 288 TestLeaBaseIndexDisp(r5, 0x300000u, r4, 0x400u, Disp, r6, r7, r8, r1);
289 TestLeaBaseIndexDisp(r5, 0x400000u, r6, 0x300u, Disp, r7, r8, r1, r10); 289 TestLeaBaseIndexDisp(r5, 0x400000u, r6, 0x300u, Disp, r7, r8, r1, r10);
290 TestLeaBaseIndexDisp(r5, 0x500000u, r7, 0x200u, Disp, r8, r1, r10, r11); 290 TestLeaBaseIndexDisp(r5, 0x500000u, r7, 0x200u, Disp, r8, r1, r10, r11);
291 TestLeaBaseIndexDisp(r5, 0x600000u, r8, 0x100u, Disp, r1, r10, r11, r12); 291 TestLeaBaseIndexDisp(r5, 0x600000u, r8, 0x100u, Disp, r1, r10, r11, r12);
292 TestLeaBaseIndexDisp(r5, 0x600000u, r9, 0x000u, Disp, r10, r11, r12, r13); 292 TestLeaBaseIndexDisp(r5, 0x600000u, r9, 0x1A00u, Disp, r10, r11, r12, r13);
293 TestLeaBaseIndexDisp(r5, 0x601000u, r10, 0x1B0u, Disp, r11, r12, r13, r14); 293 TestLeaBaseIndexDisp(r5, 0x601000u, r10, 0x1B0u, Disp, r11, r12, r13, r14);
294 TestLeaBaseIndexDisp(r5, 0x602000u, r11, 0x1C0u, Disp, r12, r13, r14, r15); 294 TestLeaBaseIndexDisp(r5, 0x602000u, r11, 0x1C0u, Disp, r12, r13, r14, r15);
295 TestLeaBaseIndexDisp(r5, 0x603000u, r12, 0x1D0u, Disp, r13, r14, r15, r1); 295 TestLeaBaseIndexDisp(r5, 0x603000u, r12, 0x1D0u, Disp, r13, r14, r15, r1);
296 TestLeaBaseIndexDisp(r5, 0x604000u, r13, 0x1E0u, Disp, r14, r15, r1, r2); 296 TestLeaBaseIndexDisp(r5, 0x604000u, r13, 0x1E0u, Disp, r14, r15, r1, r2);
297 TestLeaBaseIndexDisp(r5, 0x605000u, r14, 0x1F0u, Disp, r15, r1, r2, r3); 297 TestLeaBaseIndexDisp(r5, 0x605000u, r14, 0x1F0u, Disp, r15, r1, r2, r3);
298 TestLeaBaseIndexDisp(r5, 0x606000u, r15, 0x10Au, Disp, r1, r2, r3, r4); 298 TestLeaBaseIndexDisp(r5, 0x606000u, r15, 0x10Au, Disp, r1, r2, r3, r4);
299 TestLeaBaseIndexDisp(r5, 0x607000u, r1, 0x10Bu, Disp, r2, r3, r4, r6); 299 TestLeaBaseIndexDisp(r5, 0x607000u, r1, 0x10Bu, Disp, r2, r3, r4, r6);
300 300
301 TestLeaBaseIndexDisp(r2, 0x100000u, r5, 0x600u, Disp, r3, r4, r6, r7); 301 TestLeaBaseIndexDisp(r2, 0x100000u, r5, 0x600u, Disp, r3, r4, r6, r7);
302 TestLeaBaseIndexDisp(r3, 0x200000u, r5, 0x500u, Disp, r4, r6, r7, r8); 302 TestLeaBaseIndexDisp(r3, 0x200000u, r5, 0x500u, Disp, r4, r6, r7, r8);
303 TestLeaBaseIndexDisp(r4, 0x300000u, r5, 0x400u, Disp, r6, r7, r8, r1); 303 TestLeaBaseIndexDisp(r4, 0x300000u, r5, 0x400u, Disp, r6, r7, r8, r1);
304 TestLeaBaseIndexDisp(r6, 0x400000u, r5, 0x300u, Disp, r7, r8, r1, r10); 304 TestLeaBaseIndexDisp(r6, 0x400000u, r5, 0x300u, Disp, r7, r8, r1, r10);
305 TestLeaBaseIndexDisp(r7, 0x500000u, r5, 0x200u, Disp, r8, r1, r10, r11); 305 TestLeaBaseIndexDisp(r7, 0x500000u, r5, 0x200u, Disp, r8, r1, r10, r11);
306 TestLeaBaseIndexDisp(r8, 0x600000u, r5, 0x100u, Disp, r1, r10, r11, r12); 306 TestLeaBaseIndexDisp(r8, 0x600000u, r5, 0x100u, Disp, r1, r10, r11, r12);
307 TestLeaBaseIndexDisp(r9, 0x000000u, r5, 0x1A0u, Disp, r10, r11, r12, r13); 307 TestLeaBaseIndexDisp(r9, 0x660000u, r5, 0x1A0u, Disp, r10, r11, r12, r13);
308 TestLeaBaseIndexDisp(r10, 0x601000u, r5, 0x1B0u, Disp, r11, r12, r13, r14); 308 TestLeaBaseIndexDisp(r10, 0x601000u, r5, 0x1B0u, Disp, r11, r12, r13, r14);
309 TestLeaBaseIndexDisp(r11, 0x602000u, r5, 0x1C0u, Disp, r12, r13, r14, r15); 309 TestLeaBaseIndexDisp(r11, 0x602000u, r5, 0x1C0u, Disp, r12, r13, r14, r15);
310 TestLeaBaseIndexDisp(r12, 0x603000u, r5, 0x1D0u, Disp, r13, r14, r15, r1); 310 TestLeaBaseIndexDisp(r12, 0x603000u, r5, 0x1D0u, Disp, r13, r14, r15, r1);
311 TestLeaBaseIndexDisp(r13, 0x604000u, r5, 0x1E0u, Disp, r14, r15, r1, r2); 311 TestLeaBaseIndexDisp(r13, 0x604000u, r5, 0x1E0u, Disp, r14, r15, r1, r2);
312 TestLeaBaseIndexDisp(r14, 0x605000u, r5, 0x1F0u, Disp, r15, r1, r2, r3); 312 TestLeaBaseIndexDisp(r14, 0x605000u, r5, 0x1F0u, Disp, r15, r1, r2, r3);
313 TestLeaBaseIndexDisp(r15, 0x606000u, r5, 0x10Au, Disp, r1, r2, r3, r4); 313 TestLeaBaseIndexDisp(r15, 0x606000u, r5, 0x10Au, Disp, r1, r2, r3, r4);
314 TestLeaBaseIndexDisp(r1, 0x607000u, r5, 0x10Bu, Disp, r2, r3, r4, r6); 314 TestLeaBaseIndexDisp(r1, 0x607000u, r5, 0x10Bu, Disp, r2, r3, r4, r6);
315 315
316 TestLeaBaseIndexDisp(r0, 0, r5, 0xC0BEBEEF, Disp, r2, r3, r4, r6); 316 TestLeaBaseIndexDisp(r0, 0, r5, 0xC0BEBEEF, Disp, r2, r3, r4, r6);
317 } 317 }
(...skipping 1586 matching lines...) Expand 10 before | Expand all | Expand 10 after
1904 #undef TestImplValue 1904 #undef TestImplValue
1905 #undef TestImplSize 1905 #undef TestImplSize
1906 #undef TestImplRegAddr 1906 #undef TestImplRegAddr
1907 #undef TestImplRegReg 1907 #undef TestImplRegReg
1908 } 1908 }
1909 1909
1910 } // end of anonymous namespace 1910 } // end of anonymous namespace
1911 } // end of namespace Test 1911 } // end of namespace Test
1912 } // end of namespace X8664 1912 } // end of namespace X8664
1913 } // end of namespace Ice 1913 } // end of namespace Ice
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698