MIPS: Implement IC support for Constant Function transitions.

Port r15124 (6b02a945)

BUG=

Review URL: https://codereview.chromium.org/16984002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
palfia@homejinni.com 2013-06-13 18:48:19 +00:00
parent 91eda65014
commit ddffbb7249

View File

@ -503,7 +503,12 @@ void StubCompiler::GenerateStoreTransition(MacroAssembler* masm,
Register storage_reg = name_reg;
if (FLAG_track_fields && representation.IsSmi()) {
if (details.type() == CONSTANT_FUNCTION) {
Handle<HeapObject> constant(
HeapObject::cast(descriptors->GetValue(descriptor)));
__ LoadHeapObject(scratch1, constant);
__ Branch(miss_restore_name, ne, value_reg, Operand(scratch1));
} else if (FLAG_track_fields && representation.IsSmi()) {
__ JumpIfNotSmi(value_reg, miss_restore_name);
} else if (FLAG_track_heap_object_fields && representation.IsHeapObject()) {
__ JumpIfSmi(value_reg, miss_restore_name);
@ -560,6 +565,8 @@ void StubCompiler::GenerateStoreTransition(MacroAssembler* masm,
OMIT_REMEMBERED_SET,
OMIT_SMI_CHECK);
if (details.type() == CONSTANT_FUNCTION) return;
int index = transition->instance_descriptors()->GetFieldIndex(
transition->LastAdded());