summaryrefslogtreecommitdiff
path: root/rtl/arm
diff options
context:
space:
mode:
authorsvenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2>2013-09-01 14:05:48 +0000
committersvenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2>2013-09-01 14:05:48 +0000
commit9b0dec5b034c71af6b6944deede73fe5ed9b7d6a (patch)
tree18564dff17256f8eed41d8b80cd42562dce40391 /rtl/arm
parent4d07f7a9a7fcd39ddbd07875882134cd191b9fe4 (diff)
downloadfpc-9b0dec5b034c71af6b6944deede73fe5ed9b7d6a.tar.gz
Fix compilation of arm-wince on Linux(?).
rtl/arm/arm.inc & setjump.inc: * don't use BX if the current CPU (default for arm-wince is ARMv3) does not support it git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25393 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/arm')
-rw-r--r--rtl/arm/arm.inc20
-rw-r--r--rtl/arm/setjump.inc4
2 files changed, 24 insertions, 0 deletions
diff --git a/rtl/arm/arm.inc b/rtl/arm/arm.inc
index f1d8da6a3f..2f2d544a5f 100644
--- a/rtl/arm/arm.inc
+++ b/rtl/arm/arm.inc
@@ -607,7 +607,11 @@ asm
movs r0, r1
// unlock and return
str r2, [r3]
+{$ifdef CPUARM_HAS_BX}
bx lr
+{$else}
+ mov pc,lr
+{$endif}
.Lfpc_system_lock:
.long fpc_system_lock
@@ -692,7 +696,11 @@ asm
mov r0, r1
// unlock and return
str r2, [r3]
+{$ifdef CPUARM_HAS_BX}
bx lr
+{$else}
+ mov pc,lr
+{$endif}
.Lfpc_system_lock:
.long fpc_system_lock
@@ -752,7 +760,11 @@ asm
// unlock and return
mov r2, #0
str r2, [r3]
+{$ifdef CPUARM_HAS_BX}
bx lr
+{$else}
+ mov pc,lr
+{$endif}
.Lfpc_system_lock:
.long fpc_system_lock
@@ -816,7 +828,11 @@ asm
// unlock and return
mov r2, #0
str r2, [r3]
+{$ifdef CPUARM_HAS_BX}
bx lr
+{$else}
+ mov pc,lr
+{$endif}
.Lfpc_system_lock:
.long fpc_system_lock
@@ -881,7 +897,11 @@ asm
// unlock and return
mov r3, #0
str r3, [r12]
+{$ifdef CPUARM_HAS_BX}
bx lr
+{$else}
+ mov pc,lr
+{$endif}
.Lfpc_system_lock:
.long fpc_system_lock
diff --git a/rtl/arm/setjump.inc b/rtl/arm/setjump.inc
index cc8b729374..bcd66193d1 100644
--- a/rtl/arm/setjump.inc
+++ b/rtl/arm/setjump.inc
@@ -53,7 +53,11 @@ function fpc_setjmp(var S : jmp_buf) : longint;assembler;[Public, alias : 'FPC_S
{$else}
stmia r0,{v1-v6, sl, fp, sp, lr}
mov r0,#0
+ {$ifdef CPUARM_HAS_BX}
bx lr
+ {$else}
+ mov pc,lr
+ {$endif}
{$endif}
end;