Index: src/x87/full-codegen-x87.cc |
diff --git a/src/ia32/full-codegen-ia32.cc b/src/x87/full-codegen-x87.cc |
similarity index 99% |
copy from src/ia32/full-codegen-ia32.cc |
copy to src/x87/full-codegen-x87.cc |
index 07afba6c80d7ad264907a42904c29cc3689aac32..06eaa21f311b8e4ab839e56a0976ca1d1d4ac457 100644 |
--- a/src/ia32/full-codegen-ia32.cc |
+++ b/src/x87/full-codegen-x87.cc |
@@ -4,7 +4,7 @@ |
#include "v8.h" |
-#if V8_TARGET_ARCH_IA32 |
+#if V8_TARGET_ARCH_X87 |
#include "code-stubs.h" |
#include "codegen.h" |
@@ -111,7 +111,7 @@ static void EmitStackCheck(MacroAssembler* masm_, |
// o esp: stack pointer (pointing to return address) |
// |
// The function builds a JS frame. Please see JavaScriptFrameConstants in |
-// frames-ia32.h for its layout. |
+// frames-x87.h for its layout. |
void FullCodeGenerator::Generate() { |
CompilationInfo* info = info_; |
handler_table_ = |
@@ -232,8 +232,7 @@ void FullCodeGenerator::Generate() { |
__ RecordWriteContextSlot(esi, |
context_offset, |
eax, |
- ebx, |
- kDontSaveFPRegs); |
+ ebx); |
} |
} |
} |
@@ -448,24 +447,24 @@ void FullCodeGenerator::TestContext::Plug(Variable* var) const { |
void FullCodeGenerator::EffectContext::Plug(Heap::RootListIndex index) const { |
- UNREACHABLE(); // Not used on IA32. |
+ UNREACHABLE(); // Not used on X87. |
} |
void FullCodeGenerator::AccumulatorValueContext::Plug( |
Heap::RootListIndex index) const { |
- UNREACHABLE(); // Not used on IA32. |
+ UNREACHABLE(); // Not used on X87. |
} |
void FullCodeGenerator::StackValueContext::Plug( |
Heap::RootListIndex index) const { |
- UNREACHABLE(); // Not used on IA32. |
+ UNREACHABLE(); // Not used on X87. |
} |
void FullCodeGenerator::TestContext::Plug(Heap::RootListIndex index) const { |
- UNREACHABLE(); // Not used on IA32. |
+ UNREACHABLE(); // Not used on X87. |
} |
@@ -705,7 +704,7 @@ void FullCodeGenerator::SetVar(Variable* var, |
if (var->IsContextSlot()) { |
int offset = Context::SlotOffset(var->index()); |
ASSERT(!scratch0.is(esi) && !src.is(esi) && !scratch1.is(esi)); |
- __ RecordWriteContextSlot(scratch0, offset, src, scratch1, kDontSaveFPRegs); |
+ __ RecordWriteContextSlot(scratch0, offset, src, scratch1); |
} |
} |
@@ -839,7 +838,6 @@ void FullCodeGenerator::VisitFunctionDeclaration( |
Context::SlotOffset(variable->index()), |
result_register(), |
ecx, |
- kDontSaveFPRegs, |
EMIT_REMEMBERED_SET, |
OMIT_SMI_CHECK); |
PrepareForBailoutForId(proxy->id(), NO_REGISTERS); |
@@ -879,7 +877,6 @@ void FullCodeGenerator::VisitModuleDeclaration(ModuleDeclaration* declaration) { |
Context::SlotOffset(variable->index()), |
eax, |
ecx, |
- kDontSaveFPRegs, |
EMIT_REMEMBERED_SET, |
OMIT_SMI_CHECK); |
PrepareForBailoutForId(declaration->proxy()->id(), NO_REGISTERS); |
@@ -1772,7 +1769,6 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
__ mov(FieldOperand(ebx, offset), result_register()); |
// Update the write barrier for the array store. |
__ RecordWriteField(ebx, offset, result_register(), ecx, |
- kDontSaveFPRegs, |
EMIT_REMEMBERED_SET, |
INLINE_SMI_CHECK); |
} else { |
@@ -1931,8 +1927,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) { |
Immediate(Smi::FromInt(continuation.pos()))); |
__ mov(FieldOperand(eax, JSGeneratorObject::kContextOffset), esi); |
__ mov(ecx, esi); |
- __ RecordWriteField(eax, JSGeneratorObject::kContextOffset, ecx, edx, |
- kDontSaveFPRegs); |
+ __ RecordWriteField(eax, JSGeneratorObject::kContextOffset, ecx, edx); |
__ lea(ebx, Operand(ebp, StandardFrameConstants::kExpressionsOffset)); |
__ cmp(esp, ebx); |
__ j(equal, &post_runtime); |
@@ -2003,8 +1998,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) { |
Immediate(Smi::FromInt(l_continuation.pos()))); |
__ mov(FieldOperand(eax, JSGeneratorObject::kContextOffset), esi); |
__ mov(ecx, esi); |
- __ RecordWriteField(eax, JSGeneratorObject::kContextOffset, ecx, edx, |
- kDontSaveFPRegs); |
+ __ RecordWriteField(eax, JSGeneratorObject::kContextOffset, ecx, edx); |
__ CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject, 1); |
__ mov(context_register(), |
Operand(ebp, StandardFrameConstants::kContextOffset)); |
@@ -2198,7 +2192,7 @@ void FullCodeGenerator::EmitCreateIteratorResult(bool done) { |
// Only the value field needs a write barrier, as the other values are in the |
// root set. |
__ RecordWriteField(eax, JSGeneratorObject::kResultValuePropertyOffset, |
- ecx, edx, kDontSaveFPRegs); |
+ ecx, edx); |
} |
@@ -2379,7 +2373,7 @@ void FullCodeGenerator::EmitStoreToStackLocalOrContextSlot( |
if (var->IsContextSlot()) { |
__ mov(edx, eax); |
int offset = Context::SlotOffset(var->index()); |
- __ RecordWriteContextSlot(ecx, offset, edx, ebx, kDontSaveFPRegs); |
+ __ RecordWriteContextSlot(ecx, offset, edx, ebx); |
} |
} |
@@ -3415,8 +3409,7 @@ void FullCodeGenerator::EmitMathPow(CallRuntime* expr) { |
VisitForStackValue(args->at(0)); |
VisitForStackValue(args->at(1)); |
- MathPowStub stub(isolate(), MathPowStub::ON_STACK); |
- __ CallStub(&stub); |
+ __ CallRuntime(Runtime::kHiddenMathPowSlow, 2); |
context()->Plug(eax); |
} |
@@ -3443,7 +3436,7 @@ void FullCodeGenerator::EmitSetValueOf(CallRuntime* expr) { |
// Update the write barrier. Save the value as it will be |
// overwritten by the write barrier code and is needed afterward. |
__ mov(edx, eax); |
- __ RecordWriteField(ebx, JSValue::kValueOffset, edx, ecx, kDontSaveFPRegs); |
+ __ RecordWriteField(ebx, JSValue::kValueOffset, edx, ecx); |
__ bind(&done); |
context()->Plug(eax); |
@@ -4799,4 +4792,4 @@ BackEdgeTable::BackEdgeState BackEdgeTable::GetBackEdgeState( |
} } // namespace v8::internal |
-#endif // V8_TARGET_ARCH_IA32 |
+#endif // V8_TARGET_ARCH_X87 |