Revision: 21943
Author: [email protected]
Date: Mon Jun 23 14:28:38 2014 UTC
Log: Revert "Create a RegisterSpec class inside of the IC that
provides:"
This reverts commit r21939 due to a static initializer issue.
[email protected]
Review URL: https://codereview.chromium.org/339663008
http://code.google.com/p/v8/source/detail?r=21943
Modified:
/branches/bleeding_edge/src/arm/code-stubs-arm.cc
/branches/bleeding_edge/src/arm/ic-arm.cc
/branches/bleeding_edge/src/arm/stub-cache-arm.cc
/branches/bleeding_edge/src/arm64/code-stubs-arm64.cc
/branches/bleeding_edge/src/arm64/ic-arm64.cc
/branches/bleeding_edge/src/arm64/stub-cache-arm64.cc
/branches/bleeding_edge/src/code-stubs-hydrogen.cc
/branches/bleeding_edge/src/code-stubs.cc
/branches/bleeding_edge/src/code-stubs.h
/branches/bleeding_edge/src/ia32/code-stubs-ia32.cc
/branches/bleeding_edge/src/ia32/ic-ia32.cc
/branches/bleeding_edge/src/ia32/stub-cache-ia32.cc
/branches/bleeding_edge/src/ic.h
/branches/bleeding_edge/src/mips/code-stubs-mips.cc
/branches/bleeding_edge/src/mips/ic-mips.cc
/branches/bleeding_edge/src/mips/stub-cache-mips.cc
/branches/bleeding_edge/src/x64/code-stubs-x64.cc
/branches/bleeding_edge/src/x64/ic-x64.cc
/branches/bleeding_edge/src/x64/stub-cache-x64.cc
/branches/bleeding_edge/src/x87/code-stubs-x87.cc
/branches/bleeding_edge/src/x87/ic-x87.cc
/branches/bleeding_edge/src/x87/stub-cache-x87.cc
=======================================
--- /branches/bleeding_edge/src/arm/code-stubs-arm.cc Mon Jun 23 13:42:12
2014 UTC
+++ /branches/bleeding_edge/src/arm/code-stubs-arm.cc Mon Jun 23 14:28:38
2014 UTC
@@ -86,6 +86,26 @@
descriptor->register_params_ = registers;
descriptor->deoptimization_handler_ = NULL;
}
+
+
+void KeyedLoadFastElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { r1, r0 };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
+}
+
+
+void KeyedLoadDictionaryElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { r1, r0 };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
+}
void RegExpConstructResultStub::InitializeInterfaceDescriptor(
@@ -96,6 +116,16 @@
descriptor->deoptimization_handler_ =
Runtime::FunctionForId(Runtime::kHiddenRegExpConstructResult)->entry;
}
+
+
+void KeyedLoadGenericElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { r1, r0 };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry;
+}
void LoadFieldStub::InitializeInterfaceDescriptor(
=======================================
--- /branches/bleeding_edge/src/arm/ic-arm.cc Mon Jun 23 13:42:12 2014 UTC
+++ /branches/bleeding_edge/src/arm/ic-arm.cc Mon Jun 23 14:28:38 2014 UTC
@@ -543,17 +543,6 @@
__ TailCallExternalReference(ref, 2, 1);
}
-
-
-// IC register specifications
-Register LoadIC::kReceiverRegister = r0;
-Register LoadIC::kNameRegister = r2;
-const Register LoadIC::registers[] = { kReceiverRegister, kNameRegister };
-
-
-Register KeyedLoadIC::kReceiverRegister = r1;
-Register KeyedLoadIC::kNameRegister = r0;
-const Register KeyedLoadIC::registers[] = { kReceiverRegister,
kNameRegister };
void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
=======================================
--- /branches/bleeding_edge/src/arm/stub-cache-arm.cc Mon Jun 23 13:42:12
2014 UTC
+++ /branches/bleeding_edge/src/arm/stub-cache-arm.cc Mon Jun 23 14:28:38
2014 UTC
@@ -1263,18 +1263,14 @@
Register* LoadStubCompiler::registers() {
// receiver, name, scratch1, scratch2, scratch3, scratch4.
- Register receiver = LoadIC::kReceiverRegister;
- Register name = LoadIC::kNameRegister;
- static Register registers[] = { receiver, name, r3, r1, r4, r5 };
+ static Register registers[] = { r0, r2, r3, r1, r4, r5 };
return registers;
}
Register* KeyedLoadStubCompiler::registers() {
// receiver, name, scratch1, scratch2, scratch3, scratch4.
- Register receiver = KeyedLoadIC::kReceiverRegister;
- Register name = KeyedLoadIC::kNameRegister;
- static Register registers[] = { receiver, name, r2, r3, r4, r5 };
+ static Register registers[] = { r1, r0, r2, r3, r4, r5 };
return registers;
}
=======================================
--- /branches/bleeding_edge/src/arm64/code-stubs-arm64.cc Mon Jun 23
13:42:12 2014 UTC
+++ /branches/bleeding_edge/src/arm64/code-stubs-arm64.cc Mon Jun 23
14:28:38 2014 UTC
@@ -99,6 +99,40 @@
descriptor->register_params_ = registers;
descriptor->deoptimization_handler_ = NULL;
}
+
+
+void KeyedLoadGenericElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { x1, x0 };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry;
+}
+
+
+void KeyedLoadFastElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ // x1: receiver
+ // x0: key
+ static Register registers[] = { x1, x0 };
+ descriptor->register_param_count_ = sizeof(registers) /
sizeof(registers[0]);
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
+}
+
+
+void KeyedLoadDictionaryElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ // x1: receiver
+ // x0: key
+ static Register registers[] = { x1, x0 };
+ descriptor->register_param_count_ = sizeof(registers) /
sizeof(registers[0]);
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
+}
void RegExpConstructResultStub::InitializeInterfaceDescriptor(
=======================================
--- /branches/bleeding_edge/src/arm64/ic-arm64.cc Mon Jun 23 13:42:12 2014
UTC
+++ /branches/bleeding_edge/src/arm64/ic-arm64.cc Mon Jun 23 14:28:38 2014
UTC
@@ -580,17 +580,6 @@
__ TailCallExternalReference(ref, 2, 1);
}
-
-
-// IC register specifications
-Register LoadIC::kReceiverRegister = x0;
-Register LoadIC::kNameRegister = x2;
-const Register LoadIC::registers[] = { kReceiverRegister, kNameRegister };
-
-
-Register KeyedLoadIC::kReceiverRegister = x1;
-Register KeyedLoadIC::kNameRegister = x0;
-const Register KeyedLoadIC::registers[] = { kReceiverRegister,
kNameRegister };
void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
=======================================
--- /branches/bleeding_edge/src/arm64/stub-cache-arm64.cc Mon Jun 23
13:42:12 2014 UTC
+++ /branches/bleeding_edge/src/arm64/stub-cache-arm64.cc Mon Jun 23
14:28:38 2014 UTC
@@ -1245,18 +1245,14 @@
Register* LoadStubCompiler::registers() {
// receiver, name, scratch1, scratch2, scratch3, scratch4.
- Register receiver = LoadIC::kReceiverRegister;
- Register name = LoadIC::kNameRegister;
- static Register registers[] = { receiver, name, x3, x1, x4, x5 };
+ static Register registers[] = { x0, x2, x3, x1, x4, x5 };
return registers;
}
Register* KeyedLoadStubCompiler::registers() {
- // receiver, name, scratch1, scratch2, scratch3, scratch4.
- Register receiver = KeyedLoadIC::kReceiverRegister;
- Register name = KeyedLoadIC::kNameRegister;
- static Register registers[] = { receiver, name, x2, x3, x4, x5 };
+ // receiver, name/key, scratch1, scratch2, scratch3, scratch4.
+ static Register registers[] = { x1, x0, x2, x3, x4, x5 };
return registers;
}
=======================================
--- /branches/bleeding_edge/src/code-stubs-hydrogen.cc Mon Jun 23 13:42:12
2014 UTC
+++ /branches/bleeding_edge/src/code-stubs-hydrogen.cc Mon Jun 23 14:28:38
2014 UTC
@@ -539,14 +539,9 @@
template <>
HValue* CodeStubGraphBuilder<KeyedLoadFastElementStub>::BuildCodeStub() {
HInstruction* load = BuildUncheckedMonomorphicElementAccess(
- GetParameter(KeyedLoadIC::kReceiverIndex),
- GetParameter(KeyedLoadIC::kNameIndex),
- NULL,
- casted_stub()->is_js_array(),
- casted_stub()->elements_kind(),
- LOAD,
- NEVER_RETURN_HOLE,
- STANDARD_STORE);
+ GetParameter(0), GetParameter(1), NULL,
+ casted_stub()->is_js_array(), casted_stub()->elements_kind(),
+ LOAD, NEVER_RETURN_HOLE, STANDARD_STORE);
return load;
}
@@ -1376,8 +1371,8 @@
template<>
HValue*
CodeStubGraphBuilder<KeyedLoadDictionaryElementStub>::BuildCodeStub() {
- HValue* receiver = GetParameter(KeyedLoadIC::kReceiverIndex);
- HValue* key = GetParameter(KeyedLoadIC::kNameIndex);
+ HValue* receiver = GetParameter(0);
+ HValue* key = GetParameter(1);
Add<HCheckSmi>(key);
@@ -1509,8 +1504,8 @@
HValue* CodeStubGraphBuilder<KeyedLoadGenericElementStub>::BuildCodeStub()
{
- HValue* receiver = GetParameter(KeyedLoadIC::kReceiverIndex);
- HValue* key = GetParameter(KeyedLoadIC::kNameIndex);
+ HValue* receiver = GetParameter(0);
+ HValue* key = GetParameter(1);
// Split into a smi/integer case and unique string case.
HIfContinuation
index_name_split_continuation(graph()->CreateBasicBlock(),
=======================================
--- /branches/bleeding_edge/src/code-stubs.cc Mon Jun 23 13:42:12 2014 UTC
+++ /branches/bleeding_edge/src/code-stubs.cc Mon Jun 23 14:28:38 2014 UTC
@@ -510,33 +510,6 @@
handler_table->set(0, Smi::FromInt(handler_offset_));
code->set_handler_table(*handler_table);
}
-
-
-void KeyedLoadFastElementStub::InitializeInterfaceDescriptor(
- CodeStubInterfaceDescriptor* descriptor) {
- descriptor->register_param_count_ = KeyedLoadIC::kRegisterArgumentCount;
- descriptor->register_params_ = KeyedLoadIC::registers;
- descriptor->deoptimization_handler_ =
- FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
-}
-
-
-void KeyedLoadDictionaryElementStub::InitializeInterfaceDescriptor(
- CodeStubInterfaceDescriptor* descriptor) {
- descriptor->register_param_count_ = KeyedLoadIC::kRegisterArgumentCount;
- descriptor->register_params_ = KeyedLoadIC::registers;
- descriptor->deoptimization_handler_ =
- FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
-}
-
-
-void KeyedLoadGenericElementStub::InitializeInterfaceDescriptor(
- CodeStubInterfaceDescriptor* descriptor) {
- descriptor->register_param_count_ = KeyedLoadIC::kRegisterArgumentCount;
- descriptor->register_params_ = KeyedLoadIC::registers;
- descriptor->deoptimization_handler_ =
- Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry;
-}
void KeyedLoadDictionaryElementPlatformStub::Generate(
=======================================
--- /branches/bleeding_edge/src/code-stubs.h Mon Jun 23 13:42:12 2014 UTC
+++ /branches/bleeding_edge/src/code-stubs.h Mon Jun 23 14:28:38 2014 UTC
@@ -275,7 +275,7 @@
// return sequence. Default value is -1, which means it is ignored.
int hint_stack_parameter_count_;
StubFunctionMode function_mode_;
- const Register* register_params_;
+ Register* register_params_;
// Specifies Representations for the stub's parameter. Points to an
array of
// Representations of the same length of the numbers of parameters to the
// stub, or if NULL (the default value), Representation of each parameter
=======================================
--- /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Mon Jun 23 13:42:12
2014 UTC
+++ /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Mon Jun 23 14:28:38
2014 UTC
@@ -91,6 +91,26 @@
descriptor->register_params_ = registers;
descriptor->deoptimization_handler_ = NULL;
}
+
+
+void KeyedLoadFastElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { edx, ecx };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
+}
+
+
+void KeyedLoadDictionaryElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { edx, ecx };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
+}
void RegExpConstructResultStub::InitializeInterfaceDescriptor(
@@ -101,6 +121,16 @@
descriptor->deoptimization_handler_ =
Runtime::FunctionForId(Runtime::kHiddenRegExpConstructResult)->entry;
}
+
+
+void KeyedLoadGenericElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { edx, ecx };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry;
+}
void LoadFieldStub::InitializeInterfaceDescriptor(
=======================================
--- /branches/bleeding_edge/src/ia32/ic-ia32.cc Mon Jun 23 13:42:12 2014 UTC
+++ /branches/bleeding_edge/src/ia32/ic-ia32.cc Mon Jun 23 14:28:38 2014 UTC
@@ -1023,17 +1023,6 @@
ExternalReference(IC_Utility(kKeyedLoadIC_Miss), masm->isolate());
__ TailCallExternalReference(ref, 2, 1);
}
-
-
-// IC register specifications
-Register LoadIC::kReceiverRegister = edx;
-Register LoadIC::kNameRegister = ecx;
-const Register LoadIC::registers[] = { kReceiverRegister, kNameRegister };
-
-
-Register KeyedLoadIC::kReceiverRegister = LoadIC::kReceiverRegister;
-Register KeyedLoadIC::kNameRegister = LoadIC::kNameRegister;
-const Register KeyedLoadIC::registers[] = { kReceiverRegister,
kNameRegister };
void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
=======================================
--- /branches/bleeding_edge/src/ia32/stub-cache-ia32.cc Mon Jun 23 13:42:12
2014 UTC
+++ /branches/bleeding_edge/src/ia32/stub-cache-ia32.cc Mon Jun 23 14:28:38
2014 UTC
@@ -1283,18 +1283,14 @@
Register* LoadStubCompiler::registers() {
// receiver, name, scratch1, scratch2, scratch3, scratch4.
- Register receiver = LoadIC::kReceiverRegister;
- Register name = LoadIC::kNameRegister;
- static Register registers[] = { receiver, name, ebx, eax, edi, no_reg };
+ static Register registers[] = { edx, ecx, ebx, eax, edi, no_reg };
return registers;
}
Register* KeyedLoadStubCompiler::registers() {
// receiver, name, scratch1, scratch2, scratch3, scratch4.
- Register receiver = KeyedLoadIC::kReceiverRegister;
- Register name = KeyedLoadIC::kNameRegister;
- static Register registers[] = { receiver, name, ebx, eax, edi, no_reg };
+ static Register registers[] = { edx, ecx, ebx, eax, edi, no_reg };
return registers;
}
=======================================
--- /branches/bleeding_edge/src/ic.h Mon Jun 23 13:42:12 2014 UTC
+++ /branches/bleeding_edge/src/ic.h Mon Jun 23 14:28:38 2014 UTC
@@ -398,15 +398,6 @@
class ContextualModeBits: public BitField<ContextualMode, 0, 1> {};
STATIC_ASSERT(static_cast<int>(NOT_CONTEXTUAL) == 0);
- enum RegisterInfo {
- kReceiverIndex,
- kNameIndex,
- kRegisterArgumentCount
- };
- static Register kReceiverRegister;
- static Register kNameRegister;
- static const Register registers[kRegisterArgumentCount];
-
static ExtraICState ComputeExtraICState(ContextualMode contextual_mode) {
return ContextualModeBits::encode(contextual_mode);
}
@@ -506,10 +497,6 @@
: LoadIC(depth, isolate) {
ASSERT(target()->is_keyed_load_stub());
}
-
- static const Register registers[kRegisterArgumentCount];
- static Register kReceiverRegister;
- static Register kNameRegister;
MUST_USE_RESULT MaybeHandle<Object> Load(Handle<Object> object,
Handle<Object> key);
=======================================
--- /branches/bleeding_edge/src/mips/code-stubs-mips.cc Mon Jun 23 13:42:12
2014 UTC
+++ /branches/bleeding_edge/src/mips/code-stubs-mips.cc Mon Jun 23 14:28:38
2014 UTC
@@ -87,6 +87,26 @@
descriptor->register_params_ = registers;
descriptor->deoptimization_handler_ = NULL;
}
+
+
+void KeyedLoadFastElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { a1, a0 };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
+}
+
+
+void KeyedLoadDictionaryElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = {a1, a0 };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
+}
void RegExpConstructResultStub::InitializeInterfaceDescriptor(
@@ -97,6 +117,16 @@
descriptor->deoptimization_handler_ =
Runtime::FunctionForId(Runtime::kHiddenRegExpConstructResult)->entry;
}
+
+
+void KeyedLoadGenericElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { a1, a0 };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry;
+}
void LoadFieldStub::InitializeInterfaceDescriptor(
=======================================
--- /branches/bleeding_edge/src/mips/ic-mips.cc Mon Jun 23 13:42:12 2014 UTC
+++ /branches/bleeding_edge/src/mips/ic-mips.cc Mon Jun 23 14:28:38 2014 UTC
@@ -558,17 +558,6 @@
__ TailCallExternalReference(ref, 2, 1);
}
-
-
-// IC register specifications
-Register LoadIC::kReceiverRegister = a0;
-Register LoadIC::kNameRegister = a2;
-const Register LoadIC::registers[] = { kReceiverRegister, kNameRegister };
-
-
-Register KeyedLoadIC::kReceiverRegister = a1;
-Register KeyedLoadIC::kNameRegister = a0;
-const Register KeyedLoadIC::registers[] = { kReceiverRegister,
kNameRegister };
void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
=======================================
--- /branches/bleeding_edge/src/mips/stub-cache-mips.cc Mon Jun 23 13:42:12
2014 UTC
+++ /branches/bleeding_edge/src/mips/stub-cache-mips.cc Mon Jun 23 14:28:38
2014 UTC
@@ -1253,18 +1253,14 @@
Register* LoadStubCompiler::registers() {
// receiver, name, scratch1, scratch2, scratch3, scratch4.
- Register receiver = LoadIC::kReceiverRegister;
- Register name = LoadIC::kNameRegister;
- static Register registers[] = { receiver, name, a3, a1, t0, t1 };
+ static Register registers[] = { a0, a2, a3, a1, t0, t1 };
return registers;
}
Register* KeyedLoadStubCompiler::registers() {
// receiver, name, scratch1, scratch2, scratch3, scratch4.
- Register receiver = KeyedLoadIC::kReceiverRegister;
- Register name = KeyedLoadIC::kNameRegister;
- static Register registers[] = { receiver, name, a2, a3, t0, t1 };
+ static Register registers[] = { a1, a0, a2, a3, t0, t1 };
return registers;
}
=======================================
--- /branches/bleeding_edge/src/x64/code-stubs-x64.cc Mon Jun 23 13:42:12
2014 UTC
+++ /branches/bleeding_edge/src/x64/code-stubs-x64.cc Mon Jun 23 14:28:38
2014 UTC
@@ -87,6 +87,26 @@
descriptor->register_params_ = registers;
descriptor->deoptimization_handler_ = NULL;
}
+
+
+void KeyedLoadFastElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { rdx, rax };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
+}
+
+
+void KeyedLoadDictionaryElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { rdx, rax };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
+}
void RegExpConstructResultStub::InitializeInterfaceDescriptor(
@@ -97,6 +117,16 @@
descriptor->deoptimization_handler_ =
Runtime::FunctionForId(Runtime::kHiddenRegExpConstructResult)->entry;
}
+
+
+void KeyedLoadGenericElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { rdx, rax };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry;
+}
void LoadFieldStub::InitializeInterfaceDescriptor(
=======================================
--- /branches/bleeding_edge/src/x64/ic-x64.cc Mon Jun 23 13:42:12 2014 UTC
+++ /branches/bleeding_edge/src/x64/ic-x64.cc Mon Jun 23 14:28:38 2014 UTC
@@ -1050,17 +1050,6 @@
ExternalReference(IC_Utility(kKeyedLoadIC_Miss), masm->isolate());
__ TailCallExternalReference(ref, 2, 1);
}
-
-
-// IC register specifications
-Register LoadIC::kReceiverRegister = rax;
-Register LoadIC::kNameRegister = rcx;
-const Register LoadIC::registers[] = { kReceiverRegister, kNameRegister };
-
-
-Register KeyedLoadIC::kReceiverRegister = rdx;
-Register KeyedLoadIC::kNameRegister = rax;
-const Register KeyedLoadIC::registers[] = { kReceiverRegister,
kNameRegister };
void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
=======================================
--- /branches/bleeding_edge/src/x64/stub-cache-x64.cc Mon Jun 23 13:42:12
2014 UTC
+++ /branches/bleeding_edge/src/x64/stub-cache-x64.cc Mon Jun 23 14:28:38
2014 UTC
@@ -1222,18 +1222,14 @@
Register* LoadStubCompiler::registers() {
// receiver, name, scratch1, scratch2, scratch3, scratch4.
- Register receiver = LoadIC::kReceiverRegister;
- Register name = LoadIC::kNameRegister;
- static Register registers[] = { receiver, name, rdx, rbx, rdi, r8 };
+ static Register registers[] = { rax, rcx, rdx, rbx, rdi, r8 };
return registers;
}
Register* KeyedLoadStubCompiler::registers() {
// receiver, name, scratch1, scratch2, scratch3, scratch4.
- Register receiver = KeyedLoadIC::kReceiverRegister;
- Register name = KeyedLoadIC::kNameRegister;
- static Register registers[] = { receiver, name, rbx, rcx, rdi, r8 };
+ static Register registers[] = { rdx, rax, rbx, rcx, rdi, r8 };
return registers;
}
=======================================
--- /branches/bleeding_edge/src/x87/code-stubs-x87.cc Mon Jun 23 13:42:12
2014 UTC
+++ /branches/bleeding_edge/src/x87/code-stubs-x87.cc Mon Jun 23 14:28:38
2014 UTC
@@ -90,6 +90,26 @@
descriptor->register_params_ = registers;
descriptor->deoptimization_handler_ = NULL;
}
+
+
+void KeyedLoadFastElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { edx, ecx };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
+}
+
+
+void KeyedLoadDictionaryElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { edx, ecx };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
+}
void RegExpConstructResultStub::InitializeInterfaceDescriptor(
@@ -100,6 +120,16 @@
descriptor->deoptimization_handler_ =
Runtime::FunctionForId(Runtime::kHiddenRegExpConstructResult)->entry;
}
+
+
+void KeyedLoadGenericElementStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ static Register registers[] = { edx, ecx };
+ descriptor->register_param_count_ = 2;
+ descriptor->register_params_ = registers;
+ descriptor->deoptimization_handler_ =
+ Runtime::FunctionForId(Runtime::kKeyedGetProperty)->entry;
+}
void LoadFieldStub::InitializeInterfaceDescriptor(
=======================================
--- /branches/bleeding_edge/src/x87/ic-x87.cc Mon Jun 23 13:42:12 2014 UTC
+++ /branches/bleeding_edge/src/x87/ic-x87.cc Mon Jun 23 14:28:38 2014 UTC
@@ -1023,17 +1023,6 @@
ExternalReference(IC_Utility(kKeyedLoadIC_Miss), masm->isolate());
__ TailCallExternalReference(ref, 2, 1);
}
-
-
-// IC register specifications
-Register LoadIC::kReceiverRegister = edx;
-Register LoadIC::kNameRegister = ecx;
-const Register LoadIC::registers[] = { kReceiverRegister, kNameRegister };
-
-
-Register KeyedLoadIC::kReceiverRegister = LoadIC::kReceiverRegister;
-Register KeyedLoadIC::kNameRegister = LoadIC::kNameRegister;
-const Register KeyedLoadIC::registers[] = { kReceiverRegister,
kNameRegister };
void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
=======================================
--- /branches/bleeding_edge/src/x87/stub-cache-x87.cc Mon Jun 23 13:42:12
2014 UTC
+++ /branches/bleeding_edge/src/x87/stub-cache-x87.cc Mon Jun 23 14:28:38
2014 UTC
@@ -1282,18 +1282,14 @@
Register* LoadStubCompiler::registers() {
// receiver, name, scratch1, scratch2, scratch3, scratch4.
- Register receiver = LoadIC::kReceiverRegister;
- Register name = LoadIC::kNameRegister;
- static Register registers[] = { receiver, name, ebx, eax, edi, no_reg };
+ static Register registers[] = { edx, ecx, ebx, eax, edi, no_reg };
return registers;
}
Register* KeyedLoadStubCompiler::registers() {
// receiver, name, scratch1, scratch2, scratch3, scratch4.
- Register receiver = KeyedLoadIC::kReceiverRegister;
- Register name = KeyedLoadIC::kNameRegister;
- static Register registers[] = { receiver, name, ebx, eax, edi, no_reg };
+ static Register registers[] = { edx, ecx, ebx, eax, edi, no_reg };
return registers;
}
--
--
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.