瀏覽代碼

Fix cycling of arm compiler starting with release ppcarm 3.0.4

git-svn-id: trunk@41140 -
pierre 6 年之前
父節點
當前提交
beec828647
共有 1 個文件被更改,包括 12 次插入0 次删除
  1. 12 0
      rtl/arm/setjump.inc

+ 12 - 0
rtl/arm/setjump.inc

@@ -23,9 +23,13 @@ function fpc_setjmp(var S : jmp_buf) : longint;assembler;[Public, alias : 'FPC_S
     // fstmiad increases the address register always by 2n+1 words, so fix this
     sub r0,r0,#4
     {$else}
+    {$ifdef VER3_0}
+    fstmiad r0!, {d8-d15}
+    {$else}
     vstmia r0!, {d8-d15}
     {$endif}
     {$endif}
+    {$endif}
 
     {$if defined(CPUTHUMB2)}
     stmia	r0!, {v1-v6, sl, fp}
@@ -70,8 +74,12 @@ procedure fpc_longjmp(var S : jmp_buf;value : longint);assembler;[Public, alias
     it eq
     moveq   r0, #1
     {$if defined(FPUVFPV2) or defined(FPUVFPV3) or defined(FPUVFPV4) or defined(FPUVFPV3_D16)}
+    {$ifdef VER3_0}
+    fldmiad ip!, {d8-d15}
+    {$else}
     vldmia ip!, {d8-d15}
     {$endif}
+    {$endif}
     ldmia   ip!, {v1-v6, sl, fp}
     ldr     sp, [ip]
     add     ip, ip, #4
@@ -108,9 +116,13 @@ procedure fpc_longjmp(var S : jmp_buf;value : longint);assembler;[Public, alias
     // increases fldmiax the address register always by 2n+1 words, so fix this
     sub ip,ip,#4
     {$else}
+    {$ifdef VER3_0}
+    fldmiad ip!, {d8-d15}
+    {$else}
     vldmia ip!, {d8-d15}
     {$endif}
     {$endif}
+    {$endif}
     ldmia   ip,{v1-v6, sl, fp, sp, pc}
     {$endif}
   end;