Reviewers: Paul Lind, kisg, kilvadyb, danno,
Message:
PTAL.
Description:
MIPS: Generate KeyedLoadDictionaryElementStub with Hydrogen
Port r17804 (15aa3804)
BUG=
Please review this at https://codereview.chromium.org/74363002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+13, -3 lines):
M src/mips/code-stubs-mips.cc
M src/mips/macro-assembler-mips.cc
Index: src/mips/code-stubs-mips.cc
diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc
index
6c8b0b27a7be52e2a45464eca7e9431e418edf6a..e28eb7ab582703fdb70ab2b6478cebfab3cd0e0e
100644
--- a/src/mips/code-stubs-mips.cc
+++ b/src/mips/code-stubs-mips.cc
@@ -114,6 +114,17 @@ void
KeyedLoadFastElementStub::InitializeInterfaceDescriptor(
}
+void KeyedLoadDictionaryElementStub::InitializeInterfaceDescriptor(
+ Isolate* isolate,
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = {a1, a0 };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
+}
+
+
void LoadFieldStub::InitializeInterfaceDescriptor(
Isolate* isolate,
CodeStubInterfaceDescriptor* descriptor) {
Index: src/mips/macro-assembler-mips.cc
diff --git a/src/mips/macro-assembler-mips.cc
b/src/mips/macro-assembler-mips.cc
index
295e9c060674e4de157101776fc00d5b7c2d7866..2fdfb674ba2f768522ea19243aca654de6c4a477
100644
--- a/src/mips/macro-assembler-mips.cc
+++ b/src/mips/macro-assembler-mips.cc
@@ -510,8 +510,7 @@ void MacroAssembler::LoadFromNumberDictionary(Label*
miss,
Subu(reg1, reg1, Operand(1));
// Generate an unrolled loop that performs a few probes before giving up.
- static const int kProbes = 4;
- for (int i = 0; i < kProbes; i++) {
+ for (int i = 0; i < kNumberDictionaryProbes; i++) {
// Use reg2 for index calculations and keep the hash intact in reg0.
mov(reg2, reg0);
// Compute the masked index: (hash + i + i * i) & mask.
@@ -530,7 +529,7 @@ void MacroAssembler::LoadFromNumberDictionary(Label*
miss,
addu(reg2, elements, at);
lw(at, FieldMemOperand(reg2,
SeededNumberDictionary::kElementsStartOffset));
- if (i != kProbes - 1) {
+ if (i != kNumberDictionaryProbes - 1) {
Branch(&done, eq, key, Operand(at));
} else {
Branch(miss, ne, key, Operand(at));
--
--
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/groups/opt_out.