From 344d9057d4c4559609713da67387dcd534f3ed02 Mon Sep 17 00:00:00 2001 From: "palfia@homejinni.com" Date: Fri, 24 May 2013 01:04:08 +0000 Subject: [PATCH] MIPS: Omit smi-check for write-barrier unless tagged. Port r14767 (40dd85ec) BUG= Review URL: https://codereview.chromium.org/15745021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/mips/stub-cache-mips.cc | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/mips/stub-cache-mips.cc b/src/mips/stub-cache-mips.cc index 4a73be2..aced0ea 100644 --- a/src/mips/stub-cache-mips.cc +++ b/src/mips/stub-cache-mips.cc @@ -571,6 +571,8 @@ void StubCompiler::GenerateStoreTransition(MacroAssembler* masm, index -= object->map()->inobject_properties(); // TODO(verwaest): Share this code as a code stub. + SmiCheck smi_check = representation.IsTagged() + ? INLINE_SMI_CHECK : OMIT_SMI_CHECK; if (index < 0) { // Set the property straight into the object. int offset = object->map()->instance_size() + (index * kPointerSize); @@ -596,7 +598,9 @@ void StubCompiler::GenerateStoreTransition(MacroAssembler* masm, name_reg, scratch1, kRAHasNotBeenSaved, - kDontSaveFPRegs); + kDontSaveFPRegs, + EMIT_REMEMBERED_SET, + smi_check); } } else { // Write to the properties array. @@ -626,7 +630,9 @@ void StubCompiler::GenerateStoreTransition(MacroAssembler* masm, name_reg, receiver_reg, kRAHasNotBeenSaved, - kDontSaveFPRegs); + kDontSaveFPRegs, + EMIT_REMEMBERED_SET, + smi_check); } } @@ -715,6 +721,8 @@ void StubCompiler::GenerateStoreField(MacroAssembler* masm, } // TODO(verwaest): Share this code as a code stub. + SmiCheck smi_check = representation.IsTagged() + ? INLINE_SMI_CHECK : OMIT_SMI_CHECK; if (index < 0) { // Set the property straight into the object. int offset = object->map()->instance_size() + (index * kPointerSize); @@ -732,7 +740,9 @@ void StubCompiler::GenerateStoreField(MacroAssembler* masm, name_reg, scratch1, kRAHasNotBeenSaved, - kDontSaveFPRegs); + kDontSaveFPRegs, + EMIT_REMEMBERED_SET, + smi_check); } } else { // Write to the properties array. @@ -754,7 +764,9 @@ void StubCompiler::GenerateStoreField(MacroAssembler* masm, name_reg, receiver_reg, kRAHasNotBeenSaved, - kDontSaveFPRegs); + kDontSaveFPRegs, + EMIT_REMEMBERED_SET, + smi_check); } } -- 2.7.4