| Index: src/a64/lithium-codegen-a64.cc
|
| diff --git a/src/a64/lithium-codegen-a64.cc b/src/a64/lithium-codegen-a64.cc
|
| index 1ae2e1235fe5331555adaea22ebc7795054f03a3..49cde7e36e37caacdabb0ac9f3513282ccd8ae51 100644
|
| --- a/src/a64/lithium-codegen-a64.cc
|
| +++ b/src/a64/lithium-codegen-a64.cc
|
| @@ -5247,6 +5247,20 @@ void LCodeGen::DoSubI(LSubI* instr) {
|
| }
|
|
|
|
|
| +void LCodeGen::DoSubS(LSubS* instr) {
|
| + bool can_overflow = instr->hydrogen()->CheckFlag(HValue::kCanOverflow);
|
| + Register result = ToRegister(instr->result());
|
| + Register left = ToRegister(instr->left());
|
| + Operand right = ToOperand(instr->right());
|
| + if (can_overflow) {
|
| + __ Subs(result, left, right);
|
| + DeoptimizeIf(vs, instr->environment());
|
| + } else {
|
| + __ Sub(result, left, right);
|
| + }
|
| +}
|
| +
|
| +
|
| void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr,
|
| LOperand* value,
|
| LOperand* temp1,
|
|
|