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

Unified Diff: src/x87/full-codegen-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/frames-x87.cc ('k') | src/x87/ic-x87.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « src/x87/frames-x87.cc ('k') | src/x87/ic-x87.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698