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

Unified Diff: src/ia32/codegen-ia32.cc

Issue 5745005: Provide baseline GC version. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 10 years 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/heap-inl.h ('k') | src/ia32/ic-ia32.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ia32/codegen-ia32.cc
diff --git a/src/ia32/codegen-ia32.cc b/src/ia32/codegen-ia32.cc
index 022c117198eaccdcc4c02c3121235f891f6572e2..e54956c5a3358882e9e6b9bec049156811ee056f 100644
--- a/src/ia32/codegen-ia32.cc
+++ b/src/ia32/codegen-ia32.cc
@@ -7686,6 +7686,7 @@ void CodeGenerator::GenerateSwapElements(ZoneList<Expression*>* args) {
__ mov(Operand(index2.reg(), 0), object.reg());
__ mov(Operand(index1.reg(), 0), tmp2.reg());
+#ifndef BASELINE_GC
Label done;
__ InNewSpace(tmp1.reg(), tmp2.reg(), equal, &done);
// Possible optimization: do a check that both values are Smis
@@ -7695,6 +7696,7 @@ void CodeGenerator::GenerateSwapElements(ZoneList<Expression*>* args) {
__ RecordWriteHelper(tmp2.reg(), index1.reg(), object.reg());
__ RecordWriteHelper(tmp1.reg(), index2.reg(), object.reg());
__ bind(&done);
+#endif
deferred->BindExit();
frame_->Push(Factory::undefined_value());
@@ -9632,6 +9634,7 @@ Result CodeGenerator::EmitNamedStore(Handle<String> name, bool is_contextual) {
// Update the write barrier. To save instructions in the inlined
// version we do not filter smis.
+#ifndef BASELINE_GC
Label skip_write_barrier;
__ InNewSpace(receiver.reg(), value.reg(), equal, &skip_write_barrier);
int delta_to_record_write = masm_->SizeOfCodeGeneratedSince(&patch_site);
@@ -9643,6 +9646,7 @@ Result CodeGenerator::EmitNamedStore(Handle<String> name, bool is_contextual) {
__ mov(scratch.reg(), Immediate(BitCast<int32_t>(kZapValue)));
}
__ bind(&skip_write_barrier);
+#endif
value.Unuse();
scratch.Unuse();
receiver.Unuse();
@@ -9656,8 +9660,13 @@ Result CodeGenerator::EmitNamedStore(Handle<String> name, bool is_contextual) {
// to the write barrier store address computation in a test eax
// instruction.
int delta_to_patch_site = masm_->SizeOfCodeGeneratedSince(&patch_site);
+#ifndef BASELINE_GC
__ test(eax,
Immediate((delta_to_record_write << 16) | delta_to_patch_site));
+#else
+ __ test(eax,
+ Immediate(delta_to_patch_site));
Vitaly Repeshko 2010/12/13 13:38:01 This can cause short encoding for the test instruc
+#endif
done.Bind(&result);
}
« no previous file with comments | « src/heap-inl.h ('k') | src/ia32/ic-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698