2
0
Эх сурвалжийг харах

* don't conditionalise BL on ARM, because it may have to be converted to
BLX at link time
o related to the change introduced in r32788

git-svn-id: trunk@33199 -

Jonas Maebe 9 жил өмнө
parent
commit
38fd0efa3b

+ 5 - 1
compiler/arm/aoptcpu.pas

@@ -93,7 +93,11 @@ Implementation
         (taicpu(p).opcode<>A_CBZ) and
         (taicpu(p).opcode<>A_CBNZ) and
         (taicpu(p).opcode<>A_PLD) and
-        ((taicpu(p).opcode<>A_BLX) or
+        (((taicpu(p).opcode<>A_BLX) and
+          { BL may need to be converted into BLX by the linker -- could possibly
+            be allowed in case it's to a local symbol of which we know that it
+            uses the same instruction set as the current one }
+          (taicpu(p).opcode<>A_BL)) or
          (taicpu(p).oper[0]^.typ=top_reg));
     end;