Commit 78da0742 authored by Anisha Rohra's avatar Anisha Rohra Committed by Commit Bot

PPC/s390: Properly integrate the CallIC into Ignition.

Port ee350c31

R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=
LOG=N

Change-Id: I2dfc7562fc327a4d8577c405d5fec8c440ef0a49
Reviewed-on: https://chromium-review.googlesource.com/606707Reviewed-by: 's avatarJaideep Bajwa <bjaideep@ca.ibm.com>
Commit-Queue: Jaideep Bajwa <bjaideep@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#47230}
parent f9d4090b
......@@ -1664,7 +1664,7 @@ void FullCodeGenerator::VisitCallNew(CallNew* expr) {
Handle<Code> code = CodeFactory::Construct(isolate()).code();
__ mov(r3, Operand(arg_count));
__ LoadP(r4, MemOperand(sp, arg_count * kPointerSize), r0);
__ mov(r6, r4);
__ mr(r6, r4);
CallIC(code);
OperandStackDepthDecrement(arg_count + 1);
RestoreContext();
......
......@@ -1622,7 +1622,7 @@ void FullCodeGenerator::VisitCallNew(CallNew* expr) {
Handle<Code> code = CodeFactory::Construct(isolate()).code();
__ mov(r2, Operand(arg_count));
__ LoadP(r3, MemOperand(sp, arg_count * kPointerSize), r0);
__ mov(r5, r3);
__ LoadRR(r5, r3);
CallIC(code);
OperandStackDepthDecrement(arg_count + 1);
RestoreContext();
......
......@@ -103,20 +103,6 @@ void CallFunctionDescriptor::InitializePlatformSpecific(
data->InitializePlatformSpecific(arraysize(registers), registers);
}
void CallConstructDescriptor::InitializePlatformSpecific(
CallInterfaceDescriptorData* data) {
// r3 : number of arguments
// r4 : the function to call
// r5 : feedback vector
// r6 : slot in feedback vector (Smi, for RecordCallTarget)
// r7 : new target (for IsSuperConstructorCall)
// TODO(turbofan): So far we don't gather type feedback and hence skip the
// slot parameter, but ArrayConstructStub needs the vector to be undefined.
Register registers[] = {r3, r4, r7, r5};
data->InitializePlatformSpecific(arraysize(registers), registers);
}
void CallTrampolineDescriptor::InitializePlatformSpecific(
CallInterfaceDescriptorData* data) {
// r3 : number of arguments
......
......@@ -98,19 +98,6 @@ void CallFunctionDescriptor::InitializePlatformSpecific(
data->InitializePlatformSpecific(arraysize(registers), registers);
}
void CallConstructDescriptor::InitializePlatformSpecific(
CallInterfaceDescriptorData* data) {
// r2 : number of arguments
// r3 : the function to call
// r4 : feedback vector
// r5 : slot in feedback vector (Smi, for RecordCallTarget)
// r6 : new target (for IsSuperConstructorCall)
// TODO(turbofan): So far we don't gather type feedback and hence skip the
// slot parameter, but ArrayConstructStub needs the vector to be undefined.
Register registers[] = {r2, r3, r6, r4};
data->InitializePlatformSpecific(arraysize(registers), registers);
}
void CallTrampolineDescriptor::InitializePlatformSpecific(
CallInterfaceDescriptorData* data) {
// r2 : number of arguments
......
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