瀏覽代碼

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: trunk@25393 -
svenbarth 12 年之前
父節點
當前提交
7babce23da
共有 2 個文件被更改,包括 24 次插入0 次删除
  1. 20 0
      rtl/arm/arm.inc
  2. 4 0
      rtl/arm/setjump.inc

+ 20 - 0
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

+ 4 - 0
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;