From 4831e7b7c9146b0e7f65da6dd0d2747b29e0c0b3 Mon Sep 17 00:00:00 2001 From: "balazs.kilvady" Date: Thu, 5 Feb 2015 08:36:21 -0800 Subject: [PATCH] MIPS: Remove the obsolete OverwriteMode optimization. Port 634b0f20f4bbdad305c87fd8e196f4c05efbde1f BUG= Review URL: https://codereview.chromium.org/900253002 Cr-Commit-Position: refs/heads/master@{#26467} --- src/mips/full-codegen-mips.cc | 18 +++++------------- src/mips/lithium-codegen-mips.cc | 3 +-- src/mips64/full-codegen-mips64.cc | 18 +++++------------- src/mips64/lithium-codegen-mips64.cc | 3 +-- 4 files changed, 12 insertions(+), 30 deletions(-) diff --git a/src/mips/full-codegen-mips.cc b/src/mips/full-codegen-mips.cc index 585e36283f..2909655c0a 100644 --- a/src/mips/full-codegen-mips.cc +++ b/src/mips/full-codegen-mips.cc @@ -2029,19 +2029,15 @@ void FullCodeGenerator::VisitAssignment(Assignment* expr) { __ push(v0); // Left operand goes on the stack. VisitForAccumulatorValue(expr->value()); - OverwriteMode mode = expr->value()->ResultOverwriteAllowed() - ? OVERWRITE_RIGHT - : NO_OVERWRITE; SetSourcePosition(expr->position() + 1); AccumulatorValueContext context(this); if (ShouldInlineSmiCase(op)) { EmitInlineSmiBinaryOp(expr->binary_operation(), op, - mode, expr->target(), expr->value()); } else { - EmitBinaryOp(expr->binary_operation(), op, mode); + EmitBinaryOp(expr->binary_operation(), op); } // Deoptimization point in case the binary operation may have side effects. @@ -2423,7 +2419,6 @@ void FullCodeGenerator::EmitKeyedSuperPropertyLoad(Property* prop) { void FullCodeGenerator::EmitInlineSmiBinaryOp(BinaryOperation* expr, Token::Value op, - OverwriteMode mode, Expression* left_expr, Expression* right_expr) { Label done, smi_case, stub_call; @@ -2444,7 +2439,7 @@ void FullCodeGenerator::EmitInlineSmiBinaryOp(BinaryOperation* expr, patch_site.EmitJumpIfSmi(scratch1, &smi_case); __ bind(&stub_call); - Handle code = CodeFactory::BinaryOpIC(isolate(), op, mode).code(); + Handle code = CodeFactory::BinaryOpIC(isolate(), op).code(); CallIC(code, expr->BinaryOperationFeedbackId()); patch_site.EmitPatchInfo(); __ jmp(&done); @@ -2574,12 +2569,10 @@ void FullCodeGenerator::EmitClassDefineProperties(ClassLiteral* lit) { } -void FullCodeGenerator::EmitBinaryOp(BinaryOperation* expr, - Token::Value op, - OverwriteMode mode) { +void FullCodeGenerator::EmitBinaryOp(BinaryOperation* expr, Token::Value op) { __ mov(a0, result_register()); __ pop(a1); - Handle code = CodeFactory::BinaryOpIC(isolate(), op, mode).code(); + Handle code = CodeFactory::BinaryOpIC(isolate(), op).code(); JumpPatchSite patch_site(masm_); // unbound, signals no inlined smi code. CallIC(code, expr->BinaryOperationFeedbackId()); patch_site.EmitPatchInfo(); @@ -4850,8 +4843,7 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) { // Record position before stub call. SetSourcePosition(expr->position()); - Handle code = - CodeFactory::BinaryOpIC(isolate(), Token::ADD, NO_OVERWRITE).code(); + Handle code = CodeFactory::BinaryOpIC(isolate(), Token::ADD).code(); CallIC(code, expr->CountBinOpFeedbackId()); patch_site.EmitPatchInfo(); __ bind(&done); diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc index 78299aa032..2ecd826124 100644 --- a/src/mips/lithium-codegen-mips.cc +++ b/src/mips/lithium-codegen-mips.cc @@ -2066,8 +2066,7 @@ void LCodeGen::DoArithmeticT(LArithmeticT* instr) { DCHECK(ToRegister(instr->right()).is(a0)); DCHECK(ToRegister(instr->result()).is(v0)); - Handle code = - CodeFactory::BinaryOpIC(isolate(), instr->op(), NO_OVERWRITE).code(); + Handle code = CodeFactory::BinaryOpIC(isolate(), instr->op()).code(); CallCode(code, RelocInfo::CODE_TARGET, instr); // Other arch use a nop here, to signal that there is no inlined // patchable code. Mips does not need the nop, since our marker diff --git a/src/mips64/full-codegen-mips64.cc b/src/mips64/full-codegen-mips64.cc index eb143f8dee..9f4be7036c 100644 --- a/src/mips64/full-codegen-mips64.cc +++ b/src/mips64/full-codegen-mips64.cc @@ -2026,19 +2026,15 @@ void FullCodeGenerator::VisitAssignment(Assignment* expr) { __ push(v0); // Left operand goes on the stack. VisitForAccumulatorValue(expr->value()); - OverwriteMode mode = expr->value()->ResultOverwriteAllowed() - ? OVERWRITE_RIGHT - : NO_OVERWRITE; SetSourcePosition(expr->position() + 1); AccumulatorValueContext context(this); if (ShouldInlineSmiCase(op)) { EmitInlineSmiBinaryOp(expr->binary_operation(), op, - mode, expr->target(), expr->value()); } else { - EmitBinaryOp(expr->binary_operation(), op, mode); + EmitBinaryOp(expr->binary_operation(), op); } // Deoptimization point in case the binary operation may have side effects. @@ -2421,7 +2417,6 @@ void FullCodeGenerator::EmitKeyedSuperPropertyLoad(Property* prop) { void FullCodeGenerator::EmitInlineSmiBinaryOp(BinaryOperation* expr, Token::Value op, - OverwriteMode mode, Expression* left_expr, Expression* right_expr) { Label done, smi_case, stub_call; @@ -2442,7 +2437,7 @@ void FullCodeGenerator::EmitInlineSmiBinaryOp(BinaryOperation* expr, patch_site.EmitJumpIfSmi(scratch1, &smi_case); __ bind(&stub_call); - Handle code = CodeFactory::BinaryOpIC(isolate(), op, mode).code(); + Handle code = CodeFactory::BinaryOpIC(isolate(), op).code(); CallIC(code, expr->BinaryOperationFeedbackId()); patch_site.EmitPatchInfo(); __ jmp(&done); @@ -2571,12 +2566,10 @@ void FullCodeGenerator::EmitClassDefineProperties(ClassLiteral* lit) { } -void FullCodeGenerator::EmitBinaryOp(BinaryOperation* expr, - Token::Value op, - OverwriteMode mode) { +void FullCodeGenerator::EmitBinaryOp(BinaryOperation* expr, Token::Value op) { __ mov(a0, result_register()); __ pop(a1); - Handle code = CodeFactory::BinaryOpIC(isolate(), op, mode).code(); + Handle code = CodeFactory::BinaryOpIC(isolate(), op).code(); JumpPatchSite patch_site(masm_); // unbound, signals no inlined smi code. CallIC(code, expr->BinaryOperationFeedbackId()); patch_site.EmitPatchInfo(); @@ -4850,8 +4843,7 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) { // Record position before stub call. SetSourcePosition(expr->position()); - Handle code = - CodeFactory::BinaryOpIC(isolate(), Token::ADD, NO_OVERWRITE).code(); + Handle code = CodeFactory::BinaryOpIC(isolate(), Token::ADD).code(); CallIC(code, expr->CountBinOpFeedbackId()); patch_site.EmitPatchInfo(); __ bind(&done); diff --git a/src/mips64/lithium-codegen-mips64.cc b/src/mips64/lithium-codegen-mips64.cc index 212b704875..22232e002b 100644 --- a/src/mips64/lithium-codegen-mips64.cc +++ b/src/mips64/lithium-codegen-mips64.cc @@ -2023,8 +2023,7 @@ void LCodeGen::DoArithmeticT(LArithmeticT* instr) { DCHECK(ToRegister(instr->right()).is(a0)); DCHECK(ToRegister(instr->result()).is(v0)); - Handle code = - CodeFactory::BinaryOpIC(isolate(), instr->op(), NO_OVERWRITE).code(); + Handle code = CodeFactory::BinaryOpIC(isolate(), instr->op()).code(); CallCode(code, RelocInfo::CODE_TARGET, instr); // Other arch use a nop here, to signal that there is no inlined // patchable code. Mips does not need the nop, since our marker