From 38fd0efa3bd184f3c199fb518be01c113e05f6b7 Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Sun, 6 Mar 2016 17:44:08 +0000 Subject: [PATCH] * 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 - --- compiler/arm/aoptcpu.pas | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/compiler/arm/aoptcpu.pas b/compiler/arm/aoptcpu.pas index 5071780521..11a7b0113e 100644 --- a/compiler/arm/aoptcpu.pas +++ b/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;