Make use of "blx" instruction in fpc_ansistr_dec_ref conditional on CPUARM_HAS_BX, otherwise just use the "bl" instruction. Bug introduced in r22035. Fixes bug report 22632.

git-svn-id: trunk@22102 -
This commit is contained in:
tom_at_work 2012-08-17 08:28:08 +00:00
parent 7c56a9f34d
commit 38226169a9

View File

@ -527,7 +527,11 @@ asm
{$endif}
stmfd sp!, {r1, lr}
sub r0, r1, #8
{$ifdef CPUARM_HAS_BX}
blx InterLockedDecrement
{$else}
bl InterLockedDecrement
{$endif}
// InterLockedDecrement is a nice guy and sets the z flag for us
// if the reference count dropped to 0
ldmnefd sp!, {r1, pc}