aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/test-assembler-arm.cc
diff options
context:
space:
mode:
authorMichaƫl Zasso <targos@protonmail.com>2017-09-12 11:34:59 +0200
committerAnna Henningsen <anna@addaleax.net>2017-09-13 16:15:18 +0200
commitd82e1075dbc2cec2d6598ade10c1f43805f690fd (patch)
treeccd242b9b491dfc341d1099fe11b0ef528839877 /deps/v8/test/cctest/test-assembler-arm.cc
parentb4b7ac6ae811b2b5a3082468115dfb5a5246fe3f (diff)
downloadandroid-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.cc197
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 __