PPC/s390: Fix FullCodeGen to include CallICs and CallConstruct in the total ic count.

Port 832439ab8f

Original commit message:

    FullCodeGen does not include CallICs in the total ic count. Fix it by
    making calls to CallIC to go through CallIC function, which keeps track
    of the total number of ICs.

R=mythria@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2492803002
Cr-Commit-Position: refs/heads/master@{#40899}
This commit is contained in:
bjaideep 2016-11-10 06:44:54 -08:00 committed by Commit bot
parent a5467aae1e
commit 6f4464ecb6
2 changed files with 4 additions and 4 deletions

View File

@ -2393,7 +2393,7 @@ void FullCodeGenerator::EmitCall(Call* expr, ConvertReceiverMode mode) {
__ LoadSmiLiteral(r6, SmiFromSlot(expr->CallFeedbackICSlot()));
__ LoadP(r4, MemOperand(sp, (arg_count + 1) * kPointerSize), r0);
__ mov(r3, Operand(arg_count));
__ Call(code, RelocInfo::CODE_TARGET);
CallIC(code);
OperandStackDepthDecrement(arg_count + 1);
RecordJSReturnSite(expr);
@ -2544,7 +2544,7 @@ void FullCodeGenerator::VisitCallNew(CallNew* expr) {
__ LoadSmiLiteral(r6, SmiFromSlot(expr->CallNewFeedbackSlot()));
CallConstructStub stub(isolate());
__ Call(stub.GetCode(), RelocInfo::CODE_TARGET);
CallIC(stub.GetCode());
OperandStackDepthDecrement(arg_count + 1);
PrepareForBailoutForId(expr->ReturnId(), BailoutState::TOS_REGISTER);
RestoreContext();

View File

@ -2341,7 +2341,7 @@ void FullCodeGenerator::EmitCall(Call* expr, ConvertReceiverMode mode) {
__ LoadSmiLiteral(r5, SmiFromSlot(expr->CallFeedbackICSlot()));
__ LoadP(r3, MemOperand(sp, (arg_count + 1) * kPointerSize), r0);
__ mov(r2, Operand(arg_count));
__ Call(code, RelocInfo::CODE_TARGET);
CallIC(code);
OperandStackDepthDecrement(arg_count + 1);
RecordJSReturnSite(expr);
@ -2488,7 +2488,7 @@ void FullCodeGenerator::VisitCallNew(CallNew* expr) {
__ LoadSmiLiteral(r5, SmiFromSlot(expr->CallNewFeedbackSlot()));
CallConstructStub stub(isolate());
__ Call(stub.GetCode(), RelocInfo::CODE_TARGET);
CallIC(stub.GetCode());
OperandStackDepthDecrement(arg_count + 1);
PrepareForBailoutForId(expr->ReturnId(), BailoutState::TOS_REGISTER);
RestoreContext();