summaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/test-code-stubs-arm.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/cctest/test-code-stubs-arm.cc')
-rw-r--r--deps/v8/test/cctest/test-code-stubs-arm.cc53
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]));
}
}