| Index: src/compiler/arm/code-generator-arm.cc | 
| diff --git a/src/compiler/arm/code-generator-arm.cc b/src/compiler/arm/code-generator-arm.cc | 
| index 57a21576341f7db4e5fc12b1a003457ab30769fe..830e040c5f0f46f7a9d559acbc987674f8c5581e 100644 | 
| --- a/src/compiler/arm/code-generator-arm.cc | 
| +++ b/src/compiler/arm/code-generator-arm.cc | 
| @@ -854,13 +854,14 @@ void CodeGenerator::AssembleArchTableSwitch(Instruction* instr) { | 
| ArmOperandConverter i(this, instr); | 
| Register input = i.InputRegister(0); | 
| size_t const case_count = instr->InputCount() - 2; | 
| +  // Ensure to emit the constant pool first if necessary. | 
| __ CheckConstPool(true, true); | 
| __ cmp(input, Operand(case_count)); | 
| __ BlockConstPoolFor(case_count + 2); | 
| -  __ ldr(pc, MemOperand(pc, input, LSL, 2), lo); | 
| +  __ add(pc, pc, Operand(input, LSL, 2), LeaveCC, lo); | 
| __ b(GetLabel(i.InputRpo(1))); | 
| for (size_t index = 0; index < case_count; ++index) { | 
| -    __ dd(GetLabel(i.InputRpo(index + 2))); | 
| +    __ b(GetLabel(i.InputRpo(index + 2))); | 
| } | 
| } | 
|  | 
|  |