diff options
author | Michaƫl Zasso <targos@protonmail.com> | 2017-09-12 11:34:59 +0200 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2017-09-13 16:15:18 +0200 |
commit | d82e1075dbc2cec2d6598ade10c1f43805f690fd (patch) | |
tree | ccd242b9b491dfc341d1099fe11b0ef528839877 /deps/v8/test/cctest/test-assembler-arm.cc | |
parent | b4b7ac6ae811b2b5a3082468115dfb5a5246fe3f (diff) | |
download | android-node-v8-d82e1075dbc2cec2d6598ade10c1f43805f690fd.tar.gz android-node-v8-d82e1075dbc2cec2d6598ade10c1f43805f690fd.tar.bz2 android-node-v8-d82e1075dbc2cec2d6598ade10c1f43805f690fd.zip |
deps: update V8 to 6.1.534.36
PR-URL: https://github.com/nodejs/node/pull/14730
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Diffstat (limited to 'deps/v8/test/cctest/test-assembler-arm.cc')
-rw-r--r-- | deps/v8/test/cctest/test-assembler-arm.cc | 197 |
1 files changed, 110 insertions, 87 deletions
diff --git a/deps/v8/test/cctest/test-assembler-arm.cc b/deps/v8/test/cctest/test-assembler-arm.cc index 44b35f8d46..5483698975 100644 --- a/deps/v8/test/cctest/test-assembler-arm.cc +++ b/deps/v8/test/cctest/test-assembler-arm.cc @@ -31,6 +31,7 @@ #include "src/assembler-inl.h" #include "src/base/utils/random-number-generator.h" #include "src/disassembler.h" +#include "src/double.h" #include "src/factory.h" #include "src/macro-assembler.h" #include "src/ostreams.h" @@ -61,7 +62,7 @@ TEST(0) { __ mov(pc, Operand(lr)); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -98,7 +99,7 @@ TEST(1) { __ mov(pc, Operand(lr)); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -144,7 +145,7 @@ TEST(2) { __ mov(r0, Operand(0xFFF0FFFF)); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -192,7 +193,7 @@ TEST(3) { __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -274,16 +275,16 @@ TEST(4) { __ vstr(s1, r4, offsetof(T, y)); // Move a literal into a register that can be encoded in the instruction. - __ vmov(d4, 1.0); + __ vmov(d4, Double(1.0)); __ vstr(d4, r4, offsetof(T, e)); // Move a literal into a register that requires 64 bits to encode. // 0x3ff0000010000000 = 1.000000059604644775390625 - __ vmov(d4, 1.000000059604644775390625); + __ vmov(d4, Double(1.000000059604644775390625)); __ vstr(d4, r4, offsetof(T, d)); // Convert from floating point to integer. - __ vmov(d4, 2.0); + __ vmov(d4, Double(2.0)); __ vcvt_s32_f64(s1, d4); __ vstr(s1, r4, offsetof(T, i)); @@ -316,15 +317,15 @@ TEST(4) { __ vstr(d0, r4, offsetof(T, n)); // Test vmov for single-precision immediates. - __ vmov(s0, 0.25f); + __ vmov(s0, Float32(0.25f)); __ vstr(s0, r4, offsetof(T, o)); - __ vmov(s0, -16.0f); + __ vmov(s0, Float32(-16.0f)); __ vstr(s0, r4, offsetof(T, p)); __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -387,7 +388,7 @@ TEST(5) { __ mov(pc, Operand(lr)); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -419,7 +420,7 @@ TEST(6) { __ mov(pc, Operand(lr)); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -458,7 +459,7 @@ static void TestRoundingMode(VCVTTypes types, __ vmsr(r2); // Load value, convert, and move back result to r0 if everything went well. - __ vmov(d1, value); + __ vmov(d1, Double(value)); switch (types) { case s32_f64: __ vcvt_s32_f64(s0, d1, kFPSCRRounding); @@ -488,7 +489,7 @@ static void TestRoundingMode(VCVTTypes types, __ mov(pc, Operand(lr)); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -671,7 +672,7 @@ TEST(8) { __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -781,7 +782,7 @@ TEST(9) { __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -887,7 +888,7 @@ TEST(10) { __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -982,7 +983,7 @@ TEST(11) { __ mov(pc, Operand(lr)); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -1092,8 +1093,8 @@ TEST(13) { __ vstm(ia_w, r4, d29, d31); // Move constants into d20, d21, d22 and store into i, j, k. - __ vmov(d20, 14.7610017472335499); - __ vmov(d21, 16.0); + __ vmov(d20, Double(14.7610017472335499)); + __ vmov(d21, Double(16.0)); __ mov(r1, Operand(372106121)); __ mov(r2, Operand(1079146608)); __ vmov(d22, VmovIndexLo, r1); @@ -1109,7 +1110,7 @@ TEST(13) { __ ldm(ia_w, sp, r4.bit() | pc.bit()); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -1182,7 +1183,7 @@ TEST(14) { __ mov(pc, Operand(lr)); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -1379,12 +1380,12 @@ TEST(15) { // ARM core register to scalar. __ mov(r4, Operand(0xfffffff8)); - __ vmov(d0, 0); + __ vmov(d0, Double(0.0)); __ vmov(NeonS8, d0, 1, r4); __ vmov(NeonS16, d0, 1, r4); __ vmov(NeonS32, d0, 1, r4); __ vstr(d0, r0, offsetof(T, vmov_to_scalar1)); - __ vmov(d0, 0); + __ vmov(d0, Double(0.0)); __ vmov(NeonS8, d0, 3, r4); __ vmov(NeonS16, d0, 3, r4); __ vstr(d0, r0, offsetof(T, vmov_to_scalar2)); @@ -1419,10 +1420,10 @@ TEST(15) { __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); // vcvt for q-registers. - __ vmov(s0, -1.5); - __ vmov(s1, -1); - __ vmov(s2, 1); - __ vmov(s3, 1.5); + __ vmov(s0, Float32(-1.5f)); + __ vmov(s1, Float32(-1.0f)); + __ vmov(s2, Float32(1.0f)); + __ vmov(s3, Float32(1.5f)); __ vcvt_s32_f32(q1, q0); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vcvt_s32_f32)))); __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); @@ -1455,7 +1456,7 @@ TEST(15) { __ vst1(Neon8, NeonListOperand(q2), NeonMemOperand(r4)); // vdup (from scalar). - __ vmov(s0, -1.0); + __ vmov(s0, Float32(-1.0f)); __ vdup(Neon32, q1, d0, 0); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vdupf)))); __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); @@ -1466,10 +1467,10 @@ TEST(15) { __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); // vabs (float). - __ vmov(s0, -1.0); - __ vmov(s1, -0.0); - __ vmov(s2, 0.0); - __ vmov(s3, 1.0); + __ vmov(s0, Float32(-1.0f)); + __ vmov(s1, Float32(-0.0f)); + __ vmov(s2, Float32(0.0f)); + __ vmov(s3, Float32(1.0f)); __ vabs(q1, q0); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vabsf)))); __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); @@ -1531,90 +1532,90 @@ TEST(15) { __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); // vmin (float). - __ vmov(s4, 2.0); + __ vmov(s4, Float32(2.0f)); __ vdup(Neon32, q0, d2, 0); - __ vmov(s4, 1.0); + __ vmov(s4, Float32(1.0f)); __ vdup(Neon32, q1, d2, 0); __ vmin(q1, q1, q0); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vminf)))); __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); // vmax (float). - __ vmov(s4, 2.0); + __ vmov(s4, Float32(2.0f)); __ vdup(Neon32, q0, d2, 0); - __ vmov(s4, 1.0); + __ vmov(s4, Float32(1.0f)); __ vdup(Neon32, q1, d2, 0); __ vmax(q1, q1, q0); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vmaxf)))); __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); // vadd (float). - __ vmov(s4, 1.0); + __ vmov(s4, Float32(1.0f)); __ vdup(Neon32, q0, d2, 0); __ vdup(Neon32, q1, d2, 0); __ vadd(q1, q1, q0); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vaddf)))); __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); // vpadd (float). - __ vmov(s0, 1.0); - __ vmov(s1, 2.0); - __ vmov(s2, 3.0); - __ vmov(s3, 4.0); + __ vmov(s0, Float32(1.0f)); + __ vmov(s1, Float32(2.0f)); + __ vmov(s2, Float32(3.0f)); + __ vmov(s3, Float32(4.0f)); __ vpadd(d2, d0, d1); __ vstr(d2, r0, offsetof(T, vpaddf)); // vsub (float). - __ vmov(s4, 2.0); + __ vmov(s4, Float32(2.0f)); __ vdup(Neon32, q0, d2, 0); - __ vmov(s4, 1.0); + __ vmov(s4, Float32(1.0f)); __ vdup(Neon32, q1, d2, 0); __ vsub(q1, q1, q0); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vsubf)))); __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); // vmul (float). - __ vmov(s4, 2.0); + __ vmov(s4, Float32(2.0f)); __ vdup(Neon32, q0, d2, 0); __ vdup(Neon32, q1, d2, 0); __ vmul(q1, q1, q0); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vmulf)))); __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); // vrecpe. - __ vmov(s4, 2.0); + __ vmov(s4, Float32(2.0f)); __ vdup(Neon32, q0, d2, 0); __ vrecpe(q1, q0); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vrecpe)))); __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); // vrecps. - __ vmov(s4, 2.0); + __ vmov(s4, Float32(2.0f)); __ vdup(Neon32, q0, d2, 0); - __ vmov(s4, 1.5); + __ vmov(s4, Float32(1.5f)); __ vdup(Neon32, q1, d2, 0); __ vrecps(q1, q0, q1); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vrecps)))); __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); // vrsqrte. - __ vmov(s4, 4.0); + __ vmov(s4, Float32(4.0f)); __ vdup(Neon32, q0, d2, 0); __ vrsqrte(q1, q0); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vrsqrte)))); __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); // vrsqrts. - __ vmov(s4, 2.0); + __ vmov(s4, Float32(2.0f)); __ vdup(Neon32, q0, d2, 0); - __ vmov(s4, 2.5); + __ vmov(s4, Float32(2.5f)); __ vdup(Neon32, q1, d2, 0); __ vrsqrts(q1, q0, q1); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vrsqrts)))); __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); // vceq (float). - __ vmov(s4, 1.0); + __ vmov(s4, Float32(1.0f)); __ vdup(Neon32, q0, d2, 0); __ vdup(Neon32, q1, d2, 0); __ vceq(q1, q1, q0); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vceqf)))); __ vst1(Neon8, NeonListOperand(q1), NeonMemOperand(r4)); // vcge (float). - __ vmov(s0, 1.0); - __ vmov(s1, -1.0); - __ vmov(s2, -0.0); - __ vmov(s3, 0.0); + __ vmov(s0, Float32(1.0f)); + __ vmov(s1, Float32(-1.0f)); + __ vmov(s2, Float32(-0.0f)); + __ vmov(s3, Float32(0.0f)); __ vdup(Neon32, q1, d1, 1); __ vcge(q2, q1, q0); __ add(r4, r0, Operand(static_cast<int32_t>(offsetof(T, vcgef)))); @@ -2063,7 +2064,7 @@ TEST(15) { __ ldm(ia_w, sp, r4.bit() | r5.bit() | pc.bit()); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -2340,7 +2341,7 @@ TEST(16) { __ ldm(ia_w, sp, r4.bit() | pc.bit()); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -2421,7 +2422,7 @@ TEST(sdiv) { __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -2485,7 +2486,7 @@ TEST(udiv) { __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -2516,7 +2517,7 @@ TEST(smmla) { __ str(r1, MemOperand(r0)); __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef OBJECT_PRINT @@ -2542,7 +2543,7 @@ TEST(smmul) { __ str(r1, MemOperand(r0)); __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef OBJECT_PRINT @@ -2568,7 +2569,7 @@ TEST(sxtb) { __ str(r1, MemOperand(r0)); __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef OBJECT_PRINT @@ -2594,7 +2595,7 @@ TEST(sxtab) { __ str(r1, MemOperand(r0)); __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef OBJECT_PRINT @@ -2620,7 +2621,7 @@ TEST(sxth) { __ str(r1, MemOperand(r0)); __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef OBJECT_PRINT @@ -2646,7 +2647,7 @@ TEST(sxtah) { __ str(r1, MemOperand(r0)); __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef OBJECT_PRINT @@ -2672,7 +2673,7 @@ TEST(uxtb) { __ str(r1, MemOperand(r0)); __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef OBJECT_PRINT @@ -2698,7 +2699,7 @@ TEST(uxtab) { __ str(r1, MemOperand(r0)); __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef OBJECT_PRINT @@ -2724,7 +2725,7 @@ TEST(uxth) { __ str(r1, MemOperand(r0)); __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef OBJECT_PRINT @@ -2750,7 +2751,7 @@ TEST(uxtah) { __ str(r1, MemOperand(r0)); __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef OBJECT_PRINT @@ -2792,7 +2793,7 @@ TEST(rbit) { __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); @@ -2820,7 +2821,7 @@ TEST(code_relative_offset) { Isolate* isolate = CcTest::i_isolate(); HandleScope scope(isolate); // Initialize a code object that will contain the code. - Handle<Object> code_object(isolate->heap()->undefined_value(), isolate); + Handle<HeapObject> code_object(isolate->heap()->undefined_value(), isolate); Assembler assm(isolate, NULL, 0); @@ -2874,7 +2875,7 @@ TEST(code_relative_offset) { __ ldm(ia_w, sp, r4.bit() | r5.bit() | pc.bit()); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), code_object); F1 f = FUNCTION_CAST<F1>(code->entry()); @@ -2914,7 +2915,7 @@ TEST(msr_mrs) { __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -3015,7 +3016,7 @@ TEST(ARMv8_float32_vrintX) { __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -3120,7 +3121,7 @@ TEST(ARMv8_vrintX) { __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -3215,8 +3216,8 @@ TEST(ARMv8_vsel) { // ResultsF64* results_f64); __ msr(CPSR_f, Operand(r0)); - __ vmov(s1, kResultPass); - __ vmov(s2, kResultFail); + __ vmov(s1, Float32(kResultPass)); + __ vmov(s2, Float32(kResultFail)); __ vsel(eq, s0, s1, s2); __ vstr(s0, r1, offsetof(ResultsF32, vseleq_)); @@ -3236,8 +3237,8 @@ TEST(ARMv8_vsel) { __ vsel(vc, s0, s1, s2); __ vstr(s0, r1, offsetof(ResultsF32, vselvc_)); - __ vmov(d1, kResultPass); - __ vmov(d2, kResultFail); + __ vmov(d1, Double(kResultPass)); + __ vmov(d2, Double(kResultFail)); __ vsel(eq, d0, d1, d2); __ vstr(d0, r2, offsetof(ResultsF64, vseleq_)); @@ -3260,7 +3261,7 @@ TEST(ARMv8_vsel) { __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -3354,7 +3355,7 @@ TEST(ARMv8_vminmax_f64) { __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -3436,7 +3437,7 @@ TEST(ARMv8_vminmax_f32) { __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -3568,7 +3569,7 @@ static F4 GenerateMacroFloatMinMax(MacroAssembler& assm) { __ b(&done_max_aba); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(assm.isolate(), &desc); Handle<Code> code = assm.isolate()->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -3736,7 +3737,7 @@ TEST(unaligned_loads) { __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -3782,7 +3783,7 @@ TEST(unaligned_stores) { __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -3885,7 +3886,7 @@ TEST(vswp) { __ bx(lr); CodeDesc desc; - assm.GetCode(&desc); + assm.GetCode(isolate, &desc); Handle<Code> code = isolate->factory()->NewCode( desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); #ifdef DEBUG @@ -3968,4 +3969,26 @@ TEST(regress4292_CheckConstPool) { __ vldr(d0, MemOperand(r0, 0)); } +TEST(use_scratch_register_scope) { + CcTest::InitializeVM(); + Isolate* isolate = CcTest::i_isolate(); + HandleScope scope(isolate); + + Assembler assm(isolate, NULL, 0); + + // The assembler should have ip as a scratch by default. + CHECK_EQ(*assm.GetScratchRegisterList(), ip.bit()); + + { + UseScratchRegisterScope temps(&assm); + CHECK_EQ(*assm.GetScratchRegisterList(), ip.bit()); + + Register scratch = temps.Acquire(); + CHECK_EQ(scratch.code(), ip.code()); + CHECK_EQ(*assm.GetScratchRegisterList(), 0); + } + + CHECK_EQ(*assm.GetScratchRegisterList(), ip.bit()); +} + #undef __ |