Index: src/x64/full-codegen-x64.cc |
diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc |
index 6815838e2b0feac3a7df6c03e9c1b3eb134015ec..917764bd9a1af09f57ce06915156d43c313b36ed 100644 |
--- a/src/x64/full-codegen-x64.cc |
+++ b/src/x64/full-codegen-x64.cc |
@@ -1997,19 +1997,15 @@ void FullCodeGenerator::VisitAssignment(Assignment* expr) { |
__ Push(rax); // 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. |
PrepareForBailout(expr->binary_operation(), TOS_REG); |
@@ -2389,7 +2385,6 @@ void FullCodeGenerator::EmitKeyedSuperPropertyLoad(Property* prop) { |
void FullCodeGenerator::EmitInlineSmiBinaryOp(BinaryOperation* expr, |
Token::Value op, |
- OverwriteMode mode, |
Expression* left, |
Expression* right) { |
// Do combined smi check of the operands. Left operand is on the |
@@ -2404,7 +2399,7 @@ void FullCodeGenerator::EmitInlineSmiBinaryOp(BinaryOperation* expr, |
__ bind(&stub_call); |
__ movp(rax, rcx); |
- Handle<Code> code = CodeFactory::BinaryOpIC(isolate(), op, mode).code(); |
+ Handle<Code> code = CodeFactory::BinaryOpIC(isolate(), op).code(); |
CallIC(code, expr->BinaryOperationFeedbackId()); |
patch_site.EmitPatchInfo(); |
__ jmp(&done, Label::kNear); |
@@ -2504,11 +2499,9 @@ void FullCodeGenerator::EmitClassDefineProperties(ClassLiteral* lit) { |
} |
-void FullCodeGenerator::EmitBinaryOp(BinaryOperation* expr, |
- Token::Value op, |
- OverwriteMode mode) { |
+void FullCodeGenerator::EmitBinaryOp(BinaryOperation* expr, Token::Value op) { |
__ Pop(rdx); |
- Handle<Code> code = CodeFactory::BinaryOpIC(isolate(), op, mode).code(); |
+ Handle<Code> code = CodeFactory::BinaryOpIC(isolate(), op).code(); |
JumpPatchSite patch_site(masm_); // unbound, signals no inlined smi code. |
CallIC(code, expr->BinaryOperationFeedbackId()); |
patch_site.EmitPatchInfo(); |
@@ -4799,8 +4792,8 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) { |
__ bind(&stub_call); |
__ movp(rdx, rax); |
__ Move(rax, Smi::FromInt(1)); |
- Handle<Code> code = CodeFactory::BinaryOpIC(isolate(), expr->binary_op(), |
- NO_OVERWRITE).code(); |
+ Handle<Code> code = |
+ CodeFactory::BinaryOpIC(isolate(), expr->binary_op()).code(); |
CallIC(code, expr->CountBinOpFeedbackId()); |
patch_site.EmitPatchInfo(); |
__ bind(&done); |