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

port r22680

original commit message:

  only generate a single normal IC per kind per slow-mode map.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 5372a2a7
...@@ -1299,8 +1299,14 @@ Handle<Code> PropertyICCompiler::CompilePolymorphic(TypeHandleList* types, ...@@ -1299,8 +1299,14 @@ Handle<Code> PropertyICCompiler::CompilePolymorphic(TypeHandleList* types,
if (check == PROPERTY && if (check == PROPERTY &&
(kind() == Code::KEYED_LOAD_IC || kind() == Code::KEYED_STORE_IC)) { (kind() == Code::KEYED_LOAD_IC || kind() == Code::KEYED_STORE_IC)) {
__ cmp(this->name(), Immediate(name)); // In case we are compiling an IC for dictionary loads and stores, just
__ j(not_equal, &miss); // check whether the name is unique.
if (name.is_identical_to(isolate()->factory()->normal_ic_symbol())) {
__ JumpIfNotUniqueName(this->name(), &miss);
} else {
__ cmp(this->name(), Immediate(name));
__ j(not_equal, &miss);
}
} }
Label number_case; 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