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

Side by Side Diff: test/cctest/test-assembler-arm.cc

Issue 2593443002: [ARM] Add fp version of vceq to assembler, disassembler, and simulator. (Closed)
Patch Set: Add missing UNIMPLEMENTED(). Created 4 years 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 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1271 matching lines...) Expand 10 before | Expand all | Expand 10 after
1282 float vcvt_f32_s32[4], vcvt_f32_u32[4]; 1282 float vcvt_f32_s32[4], vcvt_f32_u32[4];
1283 uint32_t vdup8[4], vdup16[4], vdup32[4]; 1283 uint32_t vdup8[4], vdup16[4], vdup32[4];
1284 float vabsf[4], vnegf[4]; 1284 float vabsf[4], vnegf[4];
1285 uint32_t vabs_s8[4], vabs_s16[4], vabs_s32[4]; 1285 uint32_t vabs_s8[4], vabs_s16[4], vabs_s32[4];
1286 uint32_t vneg_s8[4], vneg_s16[4], vneg_s32[4]; 1286 uint32_t vneg_s8[4], vneg_s16[4], vneg_s32[4];
1287 uint32_t veor[4]; 1287 uint32_t veor[4];
1288 float vdupf[4], vaddf[4], vsubf[4], vmulf[4]; 1288 float vdupf[4], vaddf[4], vsubf[4], vmulf[4];
1289 uint32_t vadd8[4], vadd16[4], vadd32[4]; 1289 uint32_t vadd8[4], vadd16[4], vadd32[4];
1290 uint32_t vsub8[4], vsub16[4], vsub32[4]; 1290 uint32_t vsub8[4], vsub16[4], vsub32[4];
1291 uint32_t vmul8[4], vmul16[4], vmul32[4]; 1291 uint32_t vmul8[4], vmul16[4], vmul32[4];
1292 uint32_t vtst[4], vceq[4], vbsl[4]; 1292 uint32_t vtst[4], vceq[4], vceqf[4], vbsl[4];
1293 uint32_t vext[4]; 1293 uint32_t vext[4];
1294 uint32_t vzip8a[4], vzip8b[4], vzip16a[4], vzip16b[4], vzip32a[4], 1294 uint32_t vzip8a[4], vzip8b[4], vzip16a[4], vzip16b[4], vzip32a[4],
1295 vzip32b[4]; 1295 vzip32b[4];
1296 uint32_t vrev64_32[4], vrev64_16[4], vrev64_8[4]; 1296 uint32_t vrev64_32[4], vrev64_16[4], vrev64_8[4];
1297 uint32_t vrev32_16[4], vrev32_8[4]; 1297 uint32_t vrev32_16[4], vrev32_8[4];
1298 uint32_t vrev16_8[4]; 1298 uint32_t vrev16_8[4];
1299 uint32_t vtbl[2], vtbx[2]; 1299 uint32_t vtbl[2], vtbx[2];
1300 } T; 1300 } T;
1301 T t; 1301 T t;
1302 1302
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
1475 __ vsub(q1, q1, q0); 1475 __ vsub(q1, q1, q0);
1476 __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vsubf)))); 1476 __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vsubf))));
1477 __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); 1477 __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4));
1478 // vmul (float). 1478 // vmul (float).
1479 __ vmov(s4, 2.0); 1479 __ vmov(s4, 2.0);
1480 __ vdup(q0, s4); 1480 __ vdup(q0, s4);
1481 __ vdup(q1, s4); 1481 __ vdup(q1, s4);
1482 __ vmul(q1, q1, q0); 1482 __ vmul(q1, q1, q0);
1483 __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vmulf)))); 1483 __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vmulf))));
1484 __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); 1484 __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4));
1485 // vceq (float).
1486 __ vmov(s4, 1.0);
1487 __ vdup(q0, s4);
1488 __ vdup(q1, s4);
1489 __ vceq(q1, q1, q0);
1490 __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vceqf))));
1491 __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4));
1485 1492
1486 // vadd (integer). 1493 // vadd (integer).
1487 __ mov(r4, Operand(0x81)); 1494 __ mov(r4, Operand(0x81));
1488 __ vdup(Neon8, q0, r4); 1495 __ vdup(Neon8, q0, r4);
1489 __ mov(r4, Operand(0x82)); 1496 __ mov(r4, Operand(0x82));
1490 __ vdup(Neon8, q1, r4); 1497 __ vdup(Neon8, q1, r4);
1491 __ vadd(Neon8, q1, q1, q0); 1498 __ vadd(Neon8, q1, q1, q0);
1492 __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vadd8)))); 1499 __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vadd8))));
1493 __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); 1500 __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4));
1494 __ mov(r4, Operand(0x8001)); 1501 __ mov(r4, Operand(0x8001));
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
1736 CHECK_EQ_32X4(vabs_s16, 0x7f7f7f7fu, 0x01010101u, 0x00010001u, 0x7f807f80u); 1743 CHECK_EQ_32X4(vabs_s16, 0x7f7f7f7fu, 0x01010101u, 0x00010001u, 0x7f807f80u);
1737 CHECK_EQ_32X4(vabs_s32, 0x7f7f7f7fu, 0x01010101u, 0x00000001u, 0x7f7f7f80u); 1744 CHECK_EQ_32X4(vabs_s32, 0x7f7f7f7fu, 0x01010101u, 0x00000001u, 0x7f7f7f80u);
1738 CHECK_EQ_32X4(vneg_s8, 0x81818181u, 0xffffffffu, 0x01010101u, 0x80808080u); 1745 CHECK_EQ_32X4(vneg_s8, 0x81818181u, 0xffffffffu, 0x01010101u, 0x80808080u);
1739 CHECK_EQ_32X4(vneg_s16, 0x80818081u, 0xfefffeffu, 0x00010001u, 0x7f807f80u); 1746 CHECK_EQ_32X4(vneg_s16, 0x80818081u, 0xfefffeffu, 0x00010001u, 0x7f807f80u);
1740 CHECK_EQ_32X4(vneg_s32, 0x80808081u, 0xfefefeffu, 0x00000001u, 0x7f7f7f80u); 1747 CHECK_EQ_32X4(vneg_s32, 0x80808081u, 0xfefefeffu, 0x00000001u, 0x7f7f7f80u);
1741 1748
1742 CHECK_EQ_SPLAT(veor, 0x00ff00ffu); 1749 CHECK_EQ_SPLAT(veor, 0x00ff00ffu);
1743 CHECK_EQ_SPLAT(vaddf, 2.0); 1750 CHECK_EQ_SPLAT(vaddf, 2.0);
1744 CHECK_EQ_SPLAT(vsubf, -1.0); 1751 CHECK_EQ_SPLAT(vsubf, -1.0);
1745 CHECK_EQ_SPLAT(vmulf, 4.0); 1752 CHECK_EQ_SPLAT(vmulf, 4.0);
1753 CHECK_EQ_SPLAT(vceqf, 0xffffffffu);
1746 CHECK_EQ_SPLAT(vadd8, 0x03030303u); 1754 CHECK_EQ_SPLAT(vadd8, 0x03030303u);
1747 CHECK_EQ_SPLAT(vadd16, 0x00030003u); 1755 CHECK_EQ_SPLAT(vadd16, 0x00030003u);
1748 CHECK_EQ_SPLAT(vadd32, 0x00000003u); 1756 CHECK_EQ_SPLAT(vadd32, 0x00000003u);
1749 CHECK_EQ_SPLAT(vsub8, 0xfefefefeu); 1757 CHECK_EQ_SPLAT(vsub8, 0xfefefefeu);
1750 CHECK_EQ_SPLAT(vsub16, 0xfffefffeu); 1758 CHECK_EQ_SPLAT(vsub16, 0xfffefffeu);
1751 CHECK_EQ_SPLAT(vsub32, 0xfffffffeu); 1759 CHECK_EQ_SPLAT(vsub32, 0xfffffffeu);
1752 CHECK_EQ_SPLAT(vmul8, 0x04040404u); 1760 CHECK_EQ_SPLAT(vmul8, 0x04040404u);
1753 CHECK_EQ_SPLAT(vmul16, 0x00040004u); 1761 CHECK_EQ_SPLAT(vmul16, 0x00040004u);
1754 CHECK_EQ_SPLAT(vmul32, 0x00000004u); 1762 CHECK_EQ_SPLAT(vmul32, 0x00000004u);
1755 CHECK_EQ_SPLAT(vceq, 0x00ff00ffu); 1763 CHECK_EQ_SPLAT(vceq, 0x00ff00ffu);
(...skipping 1699 matching lines...) Expand 10 before | Expand all | Expand 10 after
3455 HandleScope scope(isolate); 3463 HandleScope scope(isolate);
3456 3464
3457 Assembler assm(isolate, NULL, 0); 3465 Assembler assm(isolate, NULL, 0);
3458 __ mov(r0, Operand(isolate->factory()->infinity_value())); 3466 __ mov(r0, Operand(isolate->factory()->infinity_value()));
3459 __ BlockConstPoolFor(1019); 3467 __ BlockConstPoolFor(1019);
3460 for (int i = 0; i < 1019; ++i) __ nop(); 3468 for (int i = 0; i < 1019; ++i) __ nop();
3461 __ vldr(d0, MemOperand(r0, 0)); 3469 __ vldr(d0, MemOperand(r0, 0));
3462 } 3470 }
3463 3471
3464 #undef __ 3472 #undef __
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698