Browse Source

------------------------------------------------------------------------
r41140 | pierre | 2019-01-30 10:48:21 +0000 (Wed, 30 Jan 2019) | 1 line

Fix cycling of arm compiler starting with release ppcarm 3.0.4
------------------------------------------------------------------------
--- Merging r41140 into '.':
U rtl/arm/setjump.inc
--- Recording mergeinfo for merge of r41140 into '.':
U .

git-svn-id: branches/fixes_3_2@44375 -

pierre 5 years ago
parent
commit
a77f220a51
1 changed files with 12 additions and 0 deletions
  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;