| Index: test/cctest/test-disasm-arm.cc
|
| diff --git a/test/cctest/test-disasm-arm.cc b/test/cctest/test-disasm-arm.cc
|
| index 0ac3c5a946e0833aaacf8733551c51f3096bcf18..9c327fb2c85c9576a83082c679c8fa2aa4b429e4 100644
|
| --- a/test/cctest/test-disasm-arm.cc
|
| +++ b/test/cctest/test-disasm-arm.cc
|
| @@ -425,6 +425,10 @@ TEST(Vfp) {
|
|
|
| if (CpuFeatures::IsSupported(VFP3)) {
|
| CpuFeatures::Scope scope(VFP3);
|
| + COMPARE(vmov(d0, r2, r3),
|
| + "ec432b10 vmov d0, r2, r3");
|
| + COMPARE(vmov(r2, r3, d0),
|
| + "ec532b10 vmov r2, r3, d0");
|
| COMPARE(vmov(d0, d1),
|
| "eeb00b41 vmov.f64 d0, d1");
|
| COMPARE(vmov(d3, d3, eq),
|
| @@ -473,6 +477,11 @@ TEST(Vfp) {
|
| COMPARE(vdiv(d6, d7, d7, hi),
|
| "8e876b07 vdiv.f64hi d6, d7, d7");
|
|
|
| + COMPARE(vcmp(d0, d1),
|
| + "eeb40b41 vcmp.f64 d0, d1");
|
| + COMPARE(vcmp(d0, 0.0),
|
| + "eeb50b40 vcmp.f64 d0, #0.0");
|
| +
|
| COMPARE(vsqrt(d0, d0),
|
| "eeb10bc0 vsqrt.f64 d0, d0");
|
| COMPARE(vsqrt(d2, d3, ne),
|
| @@ -483,6 +492,11 @@ TEST(Vfp) {
|
| COMPARE(vmov(d2, -13.0),
|
| "eeba2b0a vmov.f64 d2, #-13");
|
|
|
| + COMPARE(vmov(d0, 0, r0),
|
| + "ee000b10 vmov.32 d0[0], r0");
|
| + COMPARE(vmov(d0, 1, r0),
|
| + "ee200b10 vmov.32 d0[1], r0");
|
| +
|
| COMPARE(vldr(s0, r0, 0),
|
| "ed900a00 vldr s0, [r0 + 4*0]");
|
| COMPARE(vldr(s1, r1, 4),
|
| @@ -552,6 +566,97 @@ TEST(Vfp) {
|
| "ee012b00 vmla.f64 d2, d1, d0");
|
| COMPARE(vmla(d6, d4, d5, cc),
|
| "3e046b05 vmla.f64cc d6, d4, d5");
|
| +
|
| + COMPARE(vcvt_u32_f64(s0, d0),
|
| + "eebc0bc0 vcvt.u32.f64 s0, d0");
|
| + COMPARE(vcvt_s32_f64(s0, d0),
|
| + "eebd0bc0 vcvt.s32.f64 s0, d0");
|
| + COMPARE(vcvt_f64_u32(d0, s1),
|
| + "eeb80b60 vcvt.f64.u32 d0, s1");
|
| + COMPARE(vcvt_f64_s32(d0, s1),
|
| + "eeb80be0 vcvt.f64.s32 d0, s1");
|
| + COMPARE(vcvt_f32_s32(s0, s2),
|
| + "eeb80ac1 vcvt.f32.s32 s0, s2");
|
| +
|
| + if (CpuFeatures::IsSupported(VFP32DREGS)) {
|
| + COMPARE(vmov(d3, d27),
|
| + "eeb03b6b vmov.f64 d3, d27");
|
| + COMPARE(vmov(d18, d7),
|
| + "eef02b47 vmov.f64 d18, d7");
|
| + COMPARE(vmov(d18, r2, r3),
|
| + "ec432b32 vmov d18, r2, r3");
|
| + COMPARE(vmov(r2, r3, d18),
|
| + "ec532b32 vmov r2, r3, d18");
|
| + COMPARE(vmov(d20, d31),
|
| + "eef04b6f vmov.f64 d20, d31");
|
| +
|
| + COMPARE(vabs(d16, d31),
|
| + "eef00bef vabs.f64 d16, d31");
|
| +
|
| + COMPARE(vneg(d16, d31),
|
| + "eef10b6f vneg.f64 d16, d31");
|
| +
|
| + COMPARE(vadd(d16, d17, d18),
|
| + "ee710ba2 vadd.f64 d16, d17, d18");
|
| +
|
| + COMPARE(vsub(d16, d17, d18),
|
| + "ee710be2 vsub.f64 d16, d17, d18");
|
| +
|
| + COMPARE(vmul(d16, d17, d18),
|
| + "ee610ba2 vmul.f64 d16, d17, d18");
|
| +
|
| + COMPARE(vdiv(d16, d17, d18),
|
| + "eec10ba2 vdiv.f64 d16, d17, d18");
|
| +
|
| + COMPARE(vcmp(d16, d17),
|
| + "eef40b61 vcmp.f64 d16, d17");
|
| + COMPARE(vcmp(d16, 0.0),
|
| + "eef50b40 vcmp.f64 d16, #0.0");
|
| +
|
| + COMPARE(vsqrt(d16, d17),
|
| + "eef10be1 vsqrt.f64 d16, d17");
|
| +
|
| + COMPARE(vmov(d30, 16.0),
|
| + "eef3eb00 vmov.f64 d30, #16");
|
| +
|
| + COMPARE(vmov(d31, 0, r7),
|
| + "ee0f7b90 vmov.32 d31[0], r7");
|
| + COMPARE(vmov(d31, 1, r7),
|
| + "ee2f7b90 vmov.32 d31[1], r7");
|
| +
|
| + COMPARE(vldr(d25, r0, 0),
|
| + "edd09b00 vldr d25, [r0 + 4*0]");
|
| + COMPARE(vldr(d26, r1, 4),
|
| + "edd1ab01 vldr d26, [r1 + 4*1]");
|
| + COMPARE(vldr(d31, r10, 1020),
|
| + "eddafbff vldr d31, [r10 + 4*255]");
|
| +
|
| + COMPARE(vstr(d16, r0, 0),
|
| + "edc00b00 vstr d16, [r0 + 4*0]");
|
| + COMPARE(vstr(d17, r1, 4),
|
| + "edc11b01 vstr d17, [r1 + 4*1]");
|
| + COMPARE(vstr(d31, r10, 1020),
|
| + "edcafbff vstr d31, [r10 + 4*255]");
|
| +
|
| + COMPARE(vstm(ia, r0, d16, d31),
|
| + "ecc00b20 vstmia r0, {d16-d31}");
|
| + COMPARE(vldm(ia, r3, d16, d31),
|
| + "ecd30b20 vldmia r3, {d16-d31}");
|
| + COMPARE(vstm(ia, r0, d23, d27),
|
| + "ecc07b0a vstmia r0, {d23-d27}");
|
| + COMPARE(vldm(ia, r3, d23, d27),
|
| + "ecd37b0a vldmia r3, {d23-d27}");
|
| +
|
| + COMPARE(vmla(d16, d17, d18),
|
| + "ee410ba2 vmla.f64 d16, d17, d18");
|
| +
|
| + COMPARE(vcvt_u32_f64(s0, d16),
|
| + "eebc0be0 vcvt.u32.f64 s0, d16");
|
| + COMPARE(vcvt_s32_f64(s0, d16),
|
| + "eebd0be0 vcvt.s32.f64 s0, d16");
|
| + COMPARE(vcvt_f64_u32(d16, s1),
|
| + "eef80b60 vcvt.f64.u32 d16, s1");
|
| + }
|
| }
|
|
|
| VERIFY_RUN();
|
|
|