diff options
Diffstat (limited to 'chromium/v8/src/compiler/backend/arm/code-generator-arm.cc')
-rw-r--r-- | chromium/v8/src/compiler/backend/arm/code-generator-arm.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/chromium/v8/src/compiler/backend/arm/code-generator-arm.cc b/chromium/v8/src/compiler/backend/arm/code-generator-arm.cc index 88a9c52a333..79e9b425ebb 100644 --- a/chromium/v8/src/compiler/backend/arm/code-generator-arm.cc +++ b/chromium/v8/src/compiler/backend/arm/code-generator-arm.cc @@ -2970,9 +2970,10 @@ void CodeGenerator::AssembleArchTableSwitch(Instruction* instr) { ArmOperandConverter i(this, instr); Register input = i.InputRegister(0); size_t const case_count = instr->InputCount() - 2; + // This {cmp} might still emit a constant pool entry. + __ cmp(input, Operand(case_count)); // Ensure to emit the constant pool first if necessary. __ CheckConstPool(true, true); - __ cmp(input, Operand(case_count)); __ BlockConstPoolFor(case_count + 2); __ add(pc, pc, Operand(input, LSL, 2), LeaveCC, lo); __ b(GetLabel(i.InputRpo(1))); |