Reviewers: Toon Verwaest, danno, paul.l..., gergely.kis.imgtec,
balazs.kilvady, dusmil.imgtec,
Message:
PTAL.
Description:
MIPS: Only generate a single normal IC per kind per slow-mode map.
Port r22680 (8b865409)
BUG=
Please review this at https://codereview.chromium.org/426073002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+14, -2 lines):
M src/mips/stub-cache-mips.cc
M src/mips64/stub-cache-mips64.cc
Index: src/mips/stub-cache-mips.cc
diff --git a/src/mips/stub-cache-mips.cc b/src/mips/stub-cache-mips.cc
index
4f7b1ca5cb2edd96f234bc2c528f45a8e675cf94..30a37eeaa37d4763500e4fb1efa51be13e3124e0
100644
--- a/src/mips/stub-cache-mips.cc
+++ b/src/mips/stub-cache-mips.cc
@@ -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;
Index: src/mips64/stub-cache-mips64.cc
diff --git a/src/mips64/stub-cache-mips64.cc
b/src/mips64/stub-cache-mips64.cc
index
7c09089aa226ea949aa8d750d0eb8e6e2459e084..322a897fd48478d64eb9ab798c772db94c7eb7bc
100644
--- a/src/mips64/stub-cache-mips64.cc
+++ b/src/mips64/stub-cache-mips64.cc
@@ -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;
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.