Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Unified Diff: src/x87/stub-cache-x87.cc

Issue 293743005: Introduce x87 port (Closed) Base URL: git://github.com/v8/v8.git@master
Patch Set: rebase Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/x87/simulator-x87.cc ('k') | test/cctest/cctest.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/x87/stub-cache-x87.cc
diff --git a/src/ia32/stub-cache-ia32.cc b/src/x87/stub-cache-x87.cc
similarity index 98%
copy from src/ia32/stub-cache-ia32.cc
copy to src/x87/stub-cache-x87.cc
index 3f3fd0dcb32960f8f38072db35ed3b9297d3cc99..a954545aafe57c5b4f2ddab34ea2a53a14eee7d5 100644
--- a/src/ia32/stub-cache-ia32.cc
+++ b/src/x87/stub-cache-x87.cc
@@ -4,7 +4,7 @@
#include "v8.h"
-#if V8_TARGET_ARCH_IA32
+#if V8_TARGET_ARCH_X87
#include "ic-inl.h"
#include "codegen.h"
@@ -527,17 +527,19 @@ void StoreStubCompiler::GenerateStoreTransition(MacroAssembler* masm,
__ JumpIfNotSmi(value_reg, &heap_number);
__ SmiUntag(value_reg);
- __ Cvtsi2sd(xmm0, value_reg);
+ __ push(value_reg);
+ __ fild_s(Operand(esp, 0));
+ __ pop(value_reg);
__ SmiTag(value_reg);
__ jmp(&do_store);
__ bind(&heap_number);
__ CheckMap(value_reg, masm->isolate()->factory()->heap_number_map(),
miss_label, DONT_DO_SMI_CHECK);
- __ movsd(xmm0, FieldOperand(value_reg, HeapNumber::kValueOffset));
+ __ fld_d(FieldOperand(value_reg, HeapNumber::kValueOffset));
__ bind(&do_store);
- __ movsd(FieldOperand(storage_reg, HeapNumber::kValueOffset), xmm0);
+ __ fstp_d(FieldOperand(storage_reg, HeapNumber::kValueOffset));
}
// Stub never generated for non-global objects that require access
@@ -571,7 +573,6 @@ void StoreStubCompiler::GenerateStoreTransition(MacroAssembler* masm,
HeapObject::kMapOffset,
scratch1,
scratch2,
- kDontSaveFPRegs,
OMIT_REMEMBERED_SET,
OMIT_SMI_CHECK);
@@ -610,7 +611,6 @@ void StoreStubCompiler::GenerateStoreTransition(MacroAssembler* masm,
offset,
storage_reg,
scratch1,
- kDontSaveFPRegs,
EMIT_REMEMBERED_SET,
smi_check);
}
@@ -634,7 +634,6 @@ void StoreStubCompiler::GenerateStoreTransition(MacroAssembler* masm,
offset,
storage_reg,
receiver_reg,
- kDontSaveFPRegs,
EMIT_REMEMBERED_SET,
smi_check);
}
@@ -704,15 +703,17 @@ void StoreStubCompiler::GenerateStoreField(MacroAssembler* masm,
Label do_store, heap_number;
__ JumpIfNotSmi(value_reg, &heap_number);
__ SmiUntag(value_reg);
- __ Cvtsi2sd(xmm0, value_reg);
+ __ push(value_reg);
+ __ fild_s(Operand(esp, 0));
+ __ pop(value_reg);
__ SmiTag(value_reg);
__ jmp(&do_store);
__ bind(&heap_number);
__ CheckMap(value_reg, masm->isolate()->factory()->heap_number_map(),
miss_label, DONT_DO_SMI_CHECK);
- __ movsd(xmm0, FieldOperand(value_reg, HeapNumber::kValueOffset));
+ __ fld_d(FieldOperand(value_reg, HeapNumber::kValueOffset));
__ bind(&do_store);
- __ movsd(FieldOperand(scratch1, HeapNumber::kValueOffset), xmm0);
+ __ fstp_d(FieldOperand(scratch1, HeapNumber::kValueOffset));
// Return the value (register eax).
ASSERT(value_reg.is(eax));
__ ret(0);
@@ -736,7 +737,6 @@ void StoreStubCompiler::GenerateStoreField(MacroAssembler* masm,
offset,
name_reg,
scratch1,
- kDontSaveFPRegs,
EMIT_REMEMBERED_SET,
smi_check);
}
@@ -755,7 +755,6 @@ void StoreStubCompiler::GenerateStoreField(MacroAssembler* masm,
offset,
name_reg,
receiver_reg,
- kDontSaveFPRegs,
EMIT_REMEMBERED_SET,
smi_check);
}
@@ -1506,4 +1505,4 @@ void KeyedLoadStubCompiler::GenerateLoadDictionaryElement(
} } // namespace v8::internal
-#endif // V8_TARGET_ARCH_IA32
+#endif // V8_TARGET_ARCH_X87
« no previous file with comments | « src/x87/simulator-x87.cc ('k') | test/cctest/cctest.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698