* ARM: fixed detecting Thumb-style jump tables in insertpcrelativedata() after r28546.

git-svn-id: trunk@28702 -
This commit is contained in:
sergei 2014-09-21 01:59:25 +00:00
parent 27befd2375
commit b08ffa0a87

View File

@ -1055,15 +1055,16 @@ implementation
(tai(hp).typ=ait_instruction) then
begin
case taicpu(hp).opcode of
A_BX,
A_MOV,
A_LDR,
A_ADD:
{ approximation if we hit a case jump table }
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
(taicpu(hp).oper[0]^.typ=top_reg))
((taicpu(hp).opcode=A_MOV) and (GenerateThumbCode) and
(taicpu(hp).oper[0]^.typ=top_reg) and
(taicpu(hp).oper[0]^.reg=NR_PC))
then
begin
penalty:=multiplier;