diff --git a/compiler/arm/aasmcpu.pas b/compiler/arm/aasmcpu.pas index 83d66b0984..1e0ba73e2a 100644 --- a/compiler/arm/aasmcpu.pas +++ b/compiler/arm/aasmcpu.pas @@ -1037,9 +1037,10 @@ implementation begin case taicpu(hp).opcode of A_BX, - A_LDR: + A_LDR, + A_ADD: { approximation if we hit a case jump table } - if ((taicpu(hp).opcode=A_LDR) and not(GenerateThumbCode or GenerateThumb2Code) and + if ((taicpu(hp).opcode in [A_ADD,A_LDR]) and not(GenerateThumbCode or GenerateThumb2Code) and (taicpu(hp).oper[0]^.typ=top_reg) and (taicpu(hp).oper[0]^.reg=NR_PC)) or ((taicpu(hp).opcode=A_BX) and (GenerateThumbCode) and