Commit b749b3eb authored by akos.palfi@imgtec.com's avatar akos.palfi@imgtec.com

MIPS: Only generate a single normal IC per kind per slow-mode map.

Port r22680 (8b865409)

BUG=
R=paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 7b275955
......@@ -1263,7 +1263,13 @@ Handle<Code> PropertyICCompiler::CompilePolymorphic(TypeHandleList* types,
if (check == PROPERTY &&
(kind() == Code::KEYED_LOAD_IC || kind() == Code::KEYED_STORE_IC)) {
__ Branch(&miss, ne, this->name(), Operand(name));
// In case we are compiling an IC for dictionary loads and stores, just
// check whether the name is unique.
if (name.is_identical_to(isolate()->factory()->normal_ic_symbol())) {
__ JumpIfNotUniqueName(this->name(), &miss);
} else {
__ Branch(&miss, ne, this->name(), Operand(name));
}
}
Label number_case;
......
......@@ -1264,7 +1264,13 @@ Handle<Code> PropertyICCompiler::CompilePolymorphic(TypeHandleList* types,
if (check == PROPERTY &&
(kind() == Code::KEYED_LOAD_IC || kind() == Code::KEYED_STORE_IC)) {
__ Branch(&miss, ne, this->name(), Operand(name));
// In case we are compiling an IC for dictionary loads and stores, just
// check whether the name is unique.
if (name.is_identical_to(isolate()->factory()->normal_ic_symbol())) {
__ JumpIfNotUniqueName(this->name(), &miss);
} else {
__ Branch(&miss, ne, this->name(), Operand(name));
}
}
Label number_case;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment