Reviewers: titzer,
Description:
Unify InstanceofStub interface descriptors.
[email protected]
Please review this at https://codereview.chromium.org/437483003/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+23, -48 lines):
M src/arm/code-stubs-arm.cc
M src/arm64/code-stubs-arm64.cc
M src/code-stubs.h
M src/code-stubs.cc
M src/compiler/js-generic-lowering.cc
M src/ia32/code-stubs-ia32.cc
M src/mips/code-stubs-mips.cc
M src/x64/code-stubs-x64.cc
Index: src/arm/code-stubs-arm.cc
diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc
index
919a4ec755f5f199eebeef91ec661bf46de8942c..6b807b27e41b25d86270b6b30c44c5f33627d008
100644
--- a/src/arm/code-stubs-arm.cc
+++ b/src/arm/code-stubs-arm.cc
@@ -78,15 +78,8 @@ void
CreateAllocationSiteStub::InitializeInterfaceDescriptor(
}
-void InstanceofStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
- Register registers[] = {cp, left(), right()};
- descriptor->Initialize(MajorKey(), ARRAY_SIZE(registers), registers);
-}
-
-
void CallFunctionStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
+ CodeStubInterfaceDescriptor* descriptor) {
// r1 function the function to call
Register registers[] = {cp, r1};
descriptor->Initialize(MajorKey(), ARRAY_SIZE(registers), registers);
@@ -94,7 +87,7 @@ void CallFunctionStub::InitializeInterfaceDescriptor(
void CallConstructStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
+ CodeStubInterfaceDescriptor* descriptor) {
// r0 : number of arguments
// r1 : the function to call
// r2 : feedback vector
Index: src/arm64/code-stubs-arm64.cc
diff --git a/src/arm64/code-stubs-arm64.cc b/src/arm64/code-stubs-arm64.cc
index
f745975bca14ff14892c03d92387242de9a69fdb..ef241beced9c037689dd0e3578ae728908503673
100644
--- a/src/arm64/code-stubs-arm64.cc
+++ b/src/arm64/code-stubs-arm64.cc
@@ -97,15 +97,8 @@ void
CreateAllocationSiteStub::InitializeInterfaceDescriptor(
}
-void InstanceofStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
- Register registers[] = {cp, left(), right()};
- descriptor->Initialize(MajorKey(), ARRAY_SIZE(registers), registers);
-}
-
-
void CallFunctionStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
+ CodeStubInterfaceDescriptor* descriptor) {
// x1 function the function to call
Register registers[] = {cp, x1};
descriptor->Initialize(MajorKey(), ARRAY_SIZE(registers), registers);
@@ -113,7 +106,7 @@ void CallFunctionStub::InitializeInterfaceDescriptor(
void CallConstructStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
+ CodeStubInterfaceDescriptor* descriptor) {
// x0 : number of arguments
// x1 : the function to call
// x2 : feedback vector
Index: src/code-stubs.cc
diff --git a/src/code-stubs.cc b/src/code-stubs.cc
index
f23c80b056e4c0944bd47040fbd90fa87a8b611c..fc3ad94c7f3175effa1d96efbba7204a4eaf508a
100644
--- a/src/code-stubs.cc
+++ b/src/code-stubs.cc
@@ -664,6 +664,15 @@ void StoreGlobalStub::InitializeInterfaceDescriptor(
}
+void InstanceofStub::InitializeInterfaceDescriptor(
+ CodeStubInterfaceDescriptor* descriptor) {
+ Register registers[] = { InterfaceDescriptor::ContextRegister(),
+ InstanceofStub::left(),
+ InstanceofStub::right() };
+ descriptor->Initialize(MajorKey(), ARRAY_SIZE(registers), registers);
+}
+
+
void LoadDictionaryElementPlatformStub::Generate(MacroAssembler* masm) {
ElementHandlerCompiler::GenerateLoadDictionaryElement(masm);
}
Index: src/code-stubs.h
diff --git a/src/code-stubs.h b/src/code-stubs.h
index
d4a21527a221190214276a597812d71221f44130..6f2ce63e5764d70ab9c5ea17522f2c2d45bb22b9
100644
--- a/src/code-stubs.h
+++ b/src/code-stubs.h
@@ -747,7 +747,7 @@ class InstanceofStub: public PlatformCodeStub {
void Generate(MacroAssembler* masm);
virtual void InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor);
+ CodeStubInterfaceDescriptor* descriptor);
private:
Major MajorKey() const { return Instanceof; }
@@ -1628,7 +1628,7 @@ class CallFunctionStub: public PlatformCodeStub {
}
virtual void InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor);
+ CodeStubInterfaceDescriptor* descriptor);
private:
int argc_;
@@ -1670,7 +1670,7 @@ class CallConstructStub: public PlatformCodeStub {
}
virtual void InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor);
+ CodeStubInterfaceDescriptor* descriptor);
private:
CallConstructorFlags flags_;
Index: src/compiler/js-generic-lowering.cc
diff --git a/src/compiler/js-generic-lowering.cc
b/src/compiler/js-generic-lowering.cc
index
4679e4c66ebdfc0084fbd9d30d8ea2b275b4467a..3526715638ad6ff90af8f164c6d1d89498e037c3
100644
--- a/src/compiler/js-generic-lowering.cc
+++ b/src/compiler/js-generic-lowering.cc
@@ -24,7 +24,7 @@ static CodeStubInterfaceDescriptor*
GetInterfaceDescriptor(Isolate* isolate,
T* stub) {
CodeStub::Major key = static_cast<CodeStub*>(stub)->MajorKey();
CodeStubInterfaceDescriptor* d =
isolate->code_stub_interface_descriptor(key);
- stub->InitializeInterfaceDescriptor(isolate, d);
+ stub->InitializeInterfaceDescriptor(d);
return d;
}
Index: src/ia32/code-stubs-ia32.cc
diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
index
00574367440093db162bc90ab23438c832b5615d..cd034eda5eb2a809cae6562c909c0639f25cf1f1
100644
--- a/src/ia32/code-stubs-ia32.cc
+++ b/src/ia32/code-stubs-ia32.cc
@@ -84,22 +84,15 @@ void
CreateAllocationSiteStub::InitializeInterfaceDescriptor(
}
-void InstanceofStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
- Register registers[] = {esi, left(), right()};
- descriptor->Initialize(MajorKey(), ARRAY_SIZE(registers), registers);
-}
-
-
void CallFunctionStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
+ CodeStubInterfaceDescriptor* descriptor) {
Register registers[] = {esi, edi};
descriptor->Initialize(MajorKey(), ARRAY_SIZE(registers), registers);
}
void CallConstructStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
+ CodeStubInterfaceDescriptor* descriptor) {
// eax : number of arguments
// ebx : feedback vector
// edx : (only if ebx is not the megamorphic symbol) slot in feedback
Index: src/mips/code-stubs-mips.cc
diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc
index
0e55fe713ec86574c84485e3c5e4525c7145f19f..4074f892f21de631ac31804565d0a9eabbdffcb9
100644
--- a/src/mips/code-stubs-mips.cc
+++ b/src/mips/code-stubs-mips.cc
@@ -79,20 +79,14 @@ void
CreateAllocationSiteStub::InitializeInterfaceDescriptor(
}
-void InstanceofStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
- UNIMPLEMENTED();
-}
-
-
void CallFunctionStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
+ CodeStubInterfaceDescriptor* descriptor) {
UNIMPLEMENTED();
}
void CallConstructStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
+ CodeStubInterfaceDescriptor* descriptor) {
UNIMPLEMENTED();
}
Index: src/x64/code-stubs-x64.cc
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc
index
e3d54206eaac988bdfd1b83aae402c281059fe11..d0fd3358aa49d237c0fa27ca03c9745f1f9d7824
100644
--- a/src/x64/code-stubs-x64.cc
+++ b/src/x64/code-stubs-x64.cc
@@ -80,22 +80,15 @@ void
CreateAllocationSiteStub::InitializeInterfaceDescriptor(
}
-void InstanceofStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
- Register registers[] = {rsi, left(), right()};
- descriptor->Initialize(MajorKey(), ARRAY_SIZE(registers), registers);
-}
-
-
void CallFunctionStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
+ CodeStubInterfaceDescriptor* descriptor) {
Register registers[] = {rsi, rdi};
descriptor->Initialize(MajorKey(), ARRAY_SIZE(registers), registers);
}
void CallConstructStub::InitializeInterfaceDescriptor(
- Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) {
+ CodeStubInterfaceDescriptor* descriptor) {
// rax : number of arguments
// rbx : feedback vector
// rdx : (only if rbx is not the megamorphic symbol) slot in feedback
--
--
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.