Index: src/compiler/arm64/code-generator-arm64.cc |
diff --git a/src/compiler/arm64/code-generator-arm64.cc b/src/compiler/arm64/code-generator-arm64.cc |
index 91bbc2d1d919efbbe4daaddcad8e638573deed5a..85a5c580db0bfb2642f83596bca1c9655a3be6eb 100644 |
--- a/src/compiler/arm64/code-generator-arm64.cc |
+++ b/src/compiler/arm64/code-generator-arm64.cc |
@@ -243,7 +243,12 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
__ Sub(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); |
break; |
case kArm64Sub32: |
- __ Sub(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); |
+ if (FlagsModeField::decode(opcode) != kFlags_none) { |
+ __ Subs(i.OutputRegister32(), i.InputRegister32(0), |
+ i.InputOperand32(1)); |
+ } else { |
+ __ Sub(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); |
+ } |
break; |
case kArm64Shl: |
ASSEMBLE_SHIFT(Lsl, 64); |