|
@@ -18,12 +18,12 @@ function fpc_setjmp(var S : jmp_buf) : longint;assembler;[Public, alias : 'FPC_S
|
|
|
asm
|
|
|
{$if defined(FPUVFPV2) or defined(FPUVFPV3) or defined(FPUVFPV3_D16)}
|
|
|
{$if defined(CPUARMV3) or defined(CPUARMV4) or defined(CPUARMV5)}
|
|
|
- vstmia r0!, {d8-d15}
|
|
|
+ fstmiax r0!, {d8-d15}
|
|
|
// according to the ARM Developer Suite Assembler Guide Version 1.2
|
|
|
// fstmiad increases the address register always by 2n+1 words, so fix this
|
|
|
sub r0,r0,#4
|
|
|
{$else}
|
|
|
- vstmia r0!, {d8-d15}
|
|
|
+ fstmiad r0!, {d8-d15}
|
|
|
{$endif}
|
|
|
{$endif}
|
|
|
|
|
@@ -70,7 +70,7 @@ 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(FPUVFPV3_D16)}
|
|
|
- vldmia ip!, {d8-d15}
|
|
|
+ fldmiad ip!, {d8-d15}
|
|
|
{$endif}
|
|
|
ldmia ip!, {v1-v6, sl, fp}
|
|
|
ldr sp, [ip]
|
|
@@ -103,12 +103,12 @@ procedure fpc_longjmp(var S : jmp_buf;value : longint);assembler;[Public, alias
|
|
|
moveq r0, #1
|
|
|
{$if defined(FPUVFPV2) or defined(FPUVFPV3) or defined(FPUVFPV3_D16)}
|
|
|
{$if defined(CPUARMV3) or defined(CPUARMV4) or defined(CPUARMV5)}
|
|
|
- vldmia ip!, {d8-d15}
|
|
|
+ fldmiax ip!, {d8-d15}
|
|
|
// according to the ARM Developer Suite Assembler Guide Version 1.2
|
|
|
// increases fldmiax the address register always by 2n+1 words, so fix this
|
|
|
sub ip,ip,#4
|
|
|
{$else}
|
|
|
- vldmia ip!, {d8-d15}
|
|
|
+ fldmiad ip!, {d8-d15}
|
|
|
{$endif}
|
|
|
{$endif}
|
|
|
ldmia ip,{v1-v6, sl, fp, sp, pc}
|