diff options
Diffstat (limited to 'deps/v8/test/cctest/test-code-stubs-arm.cc')
-rw-r--r-- | deps/v8/test/cctest/test-code-stubs-arm.cc | 53 |
1 files changed, 12 insertions, 41 deletions
diff --git a/deps/v8/test/cctest/test-code-stubs-arm.cc b/deps/v8/test/cctest/test-code-stubs-arm.cc index cb80382901..076c918906 100644 --- a/deps/v8/test/cctest/test-code-stubs-arm.cc +++ b/deps/v8/test/cctest/test-code-stubs-arm.cc @@ -44,22 +44,17 @@ namespace internal { #define __ masm. ConvertDToIFunc MakeConvertDToIFuncTrampoline(Isolate* isolate, - Register source_reg, - Register destination_reg, - bool inline_fastpath) { - // Allocate an executable page of memory. - size_t actual_size; - byte* buffer = static_cast<byte*>(v8::base::OS::Allocate( - Assembler::kMinimalBufferSize, &actual_size, true)); - CHECK(buffer); + Register destination_reg) { HandleScope handles(isolate); - MacroAssembler masm(isolate, buffer, static_cast<int>(actual_size), + + size_t allocated; + byte* buffer = AllocateAssemblerBuffer(&allocated); + MacroAssembler masm(isolate, buffer, static_cast<int>(allocated), v8::internal::CodeObjectRequired::kYes); - DoubleToIStub stub(isolate, source_reg, destination_reg, 0, true, - inline_fastpath); + + DoubleToIStub stub(isolate, destination_reg); byte* start = stub.GetCode()->instruction_start(); - Label done; // Save callee save registers. __ Push(r7, r6, r5, r4); @@ -72,9 +67,6 @@ ConvertDToIFunc MakeConvertDToIFuncTrampoline(Isolate* isolate, // Push the double argument. __ sub(sp, sp, Operand(kDoubleSize)); __ vstr(d0, sp, 0); - if (source_reg != sp) { - __ mov(source_reg, sp); - } // Save registers make sure they don't get clobbered. int source_reg_offset = kDoubleSize; @@ -94,16 +86,7 @@ ConvertDToIFunc MakeConvertDToIFuncTrampoline(Isolate* isolate, __ vstr(d0, sp, 0); // Call through to the actual stub - if (inline_fastpath) { - __ vldr(d0, MemOperand(source_reg)); - __ TryInlineTruncateDoubleToI(destination_reg, d0, &done); - if (destination_reg == source_reg && source_reg != sp) { - // Restore clobbered source_reg. - __ add(source_reg, sp, Operand(source_reg_offset)); - } - } __ Call(start, RelocInfo::EXTERNAL_REFERENCE); - __ bind(&done); __ add(sp, sp, Operand(kDoubleSize)); @@ -132,7 +115,7 @@ ConvertDToIFunc MakeConvertDToIFuncTrampoline(Isolate* isolate, CodeDesc desc; masm.GetCode(isolate, &desc); - Assembler::FlushICache(isolate, buffer, actual_size); + Assembler::FlushICache(isolate, buffer, allocated); return (reinterpret_cast<ConvertDToIFunc>( reinterpret_cast<intptr_t>(buffer))); } @@ -168,24 +151,12 @@ TEST(ConvertDToI) { RunAllTruncationTests(&ConvertDToICVersion); #endif - Register source_registers[] = {sp, r0, r1, r2, r3, r4, r5, r6, r7}; Register dest_registers[] = {r0, r1, r2, r3, r4, r5, r6, r7}; - for (size_t s = 0; s < sizeof(source_registers) / sizeof(Register); s++) { - for (size_t d = 0; d < sizeof(dest_registers) / sizeof(Register); d++) { - RunAllTruncationTests( - RunGeneratedCodeCallWrapper, - MakeConvertDToIFuncTrampoline(isolate, - source_registers[s], - dest_registers[d], - false)); - RunAllTruncationTests( - RunGeneratedCodeCallWrapper, - MakeConvertDToIFuncTrampoline(isolate, - source_registers[s], - dest_registers[d], - true)); - } + for (size_t d = 0; d < sizeof(dest_registers) / sizeof(Register); d++) { + RunAllTruncationTests( + RunGeneratedCodeCallWrapper, + MakeConvertDToIFuncTrampoline(isolate, dest_registers[d])); } } |