Commit e18e3cd4 authored by bmeurer's avatar bmeurer Committed by Commit bot

[stubs] Add missing interface descriptor for the CompareIC.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27305}
parent de2a225a
...@@ -227,6 +227,12 @@ void InternalArrayConstructorDescriptor::Initialize( ...@@ -227,6 +227,12 @@ void InternalArrayConstructorDescriptor::Initialize(
} }
void CompareDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {cp, r1, r0};
data->Initialize(arraysize(registers), registers, NULL);
}
void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) { void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {cp, r0}; Register registers[] = {cp, r0};
data->Initialize(arraysize(registers), registers, NULL); data->Initialize(arraysize(registers), registers, NULL);
......
...@@ -261,6 +261,15 @@ void InternalArrayConstructorDescriptor::Initialize( ...@@ -261,6 +261,15 @@ void InternalArrayConstructorDescriptor::Initialize(
} }
void CompareDescriptor::Initialize(CallInterfaceDescriptorData* data) {
// cp: context
// x1: left operand
// x0: right operand
Register registers[] = {cp, x1, x0};
data->Initialize(arraysize(registers), registers, NULL);
}
void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) { void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) {
// cp: context // cp: context
// x0: value to compare // x0: value to compare
......
...@@ -107,7 +107,7 @@ Callable CodeFactory::KeyedStoreICInOptimizedCode( ...@@ -107,7 +107,7 @@ Callable CodeFactory::KeyedStoreICInOptimizedCode(
// static // static
Callable CodeFactory::CompareIC(Isolate* isolate, Token::Value op) { Callable CodeFactory::CompareIC(Isolate* isolate, Token::Value op) {
Handle<Code> code = CompareIC::GetUninitialized(isolate, op); Handle<Code> code = CompareIC::GetUninitialized(isolate, op);
return Callable(code, BinaryOpDescriptor(isolate)); return Callable(code, CompareDescriptor(isolate));
} }
......
...@@ -228,6 +228,12 @@ void InternalArrayConstructorDescriptor::Initialize( ...@@ -228,6 +228,12 @@ void InternalArrayConstructorDescriptor::Initialize(
} }
void CompareDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {esi, edx, eax};
data->Initialize(arraysize(registers), registers, NULL);
}
void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) { void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {esi, eax}; Register registers[] = {esi, eax};
data->Initialize(arraysize(registers), registers, NULL); data->Initialize(arraysize(registers), registers, NULL);
......
...@@ -40,6 +40,7 @@ class PlatformInterfaceDescriptor; ...@@ -40,6 +40,7 @@ class PlatformInterfaceDescriptor;
V(ArrayConstructor) \ V(ArrayConstructor) \
V(InternalArrayConstructorConstantArgCount) \ V(InternalArrayConstructorConstantArgCount) \
V(InternalArrayConstructor) \ V(InternalArrayConstructor) \
V(Compare) \
V(CompareNil) \ V(CompareNil) \
V(ToBoolean) \ V(ToBoolean) \
V(BinaryOp) \ V(BinaryOp) \
...@@ -406,6 +407,12 @@ class InternalArrayConstructorDescriptor : public CallInterfaceDescriptor { ...@@ -406,6 +407,12 @@ class InternalArrayConstructorDescriptor : public CallInterfaceDescriptor {
}; };
class CompareDescriptor : public CallInterfaceDescriptor {
public:
DECLARE_DESCRIPTOR(CompareDescriptor, CallInterfaceDescriptor)
};
class CompareNilDescriptor : public CallInterfaceDescriptor { class CompareNilDescriptor : public CallInterfaceDescriptor {
public: public:
DECLARE_DESCRIPTOR(CompareNilDescriptor, CallInterfaceDescriptor) DECLARE_DESCRIPTOR(CompareNilDescriptor, CallInterfaceDescriptor)
......
...@@ -227,6 +227,12 @@ void InternalArrayConstructorDescriptor::Initialize( ...@@ -227,6 +227,12 @@ void InternalArrayConstructorDescriptor::Initialize(
} }
void CompareDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {cp, a1, a0};
data->Initialize(arraysize(registers), registers, NULL);
}
void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) { void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {cp, a0}; Register registers[] = {cp, a0};
data->Initialize(arraysize(registers), registers, NULL); data->Initialize(arraysize(registers), registers, NULL);
......
...@@ -227,6 +227,12 @@ void InternalArrayConstructorDescriptor::Initialize( ...@@ -227,6 +227,12 @@ void InternalArrayConstructorDescriptor::Initialize(
} }
void CompareDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {cp, a1, a0};
data->Initialize(arraysize(registers), registers, NULL);
}
void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) { void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {cp, a0}; Register registers[] = {cp, a0};
data->Initialize(arraysize(registers), registers, NULL); data->Initialize(arraysize(registers), registers, NULL);
......
...@@ -227,6 +227,12 @@ void InternalArrayConstructorDescriptor::Initialize( ...@@ -227,6 +227,12 @@ void InternalArrayConstructorDescriptor::Initialize(
} }
void CompareDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {cp, r4, r3};
data->Initialize(arraysize(registers), registers, NULL);
}
void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) { void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {cp, r3}; Register registers[] = {cp, r3};
data->Initialize(arraysize(registers), registers, NULL); data->Initialize(arraysize(registers), registers, NULL);
......
...@@ -229,6 +229,12 @@ void InternalArrayConstructorDescriptor::Initialize( ...@@ -229,6 +229,12 @@ void InternalArrayConstructorDescriptor::Initialize(
} }
void CompareDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {rsi, rdx, rax};
data->Initialize(arraysize(registers), registers, NULL);
}
void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) { void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) {
Register registers[] = {rsi, rax}; Register registers[] = {rsi, rax};
data->Initialize(arraysize(registers), registers, NULL); data->Initialize(arraysize(registers), registers, NULL);
......
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