MIPS: Do not omit the write-barrier if the input value is a smi.

Port r15573 (3954d53)

Original commit message:
ARM: Do not omit the write-barrier if the input value is a smi.
The input value isn't what is written into the field if the representation is double. A heap-number is written to the field instead; which requires a write-barrier.

BUG=chromium:254570

Review URL: https://codereview.chromium.org/18118010
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
palfia@homejinni.com 2013-07-09 15:58:31 +00:00
parent 17e228d3dd
commit b7a2c88f0f

View File

@ -560,9 +560,6 @@ void BaseStoreStubCompiler::GenerateStoreTransition(MacroAssembler* masm,
}
if (!FLAG_track_fields || !representation.IsSmi()) {
// Skip updating write barrier if storing a smi.
__ JumpIfSmi(value_reg, &exit);
// Update the write barrier for the array address.
if (!FLAG_track_double_fields || !representation.IsDouble()) {
__ mov(storage_reg, value_reg);
@ -589,9 +586,6 @@ void BaseStoreStubCompiler::GenerateStoreTransition(MacroAssembler* masm,
}
if (!FLAG_track_fields || !representation.IsSmi()) {
// Skip updating write barrier if storing a smi.
__ JumpIfSmi(value_reg, &exit);
// Update the write barrier for the array address.
if (!FLAG_track_double_fields || !representation.IsDouble()) {
__ mov(storage_reg, value_reg);