|
@@ -14,12 +14,43 @@
|
|
|
|
|
|
**********************************************************************}
|
|
|
|
|
|
-function fpc_setjmp(var S : jmp_buf) : longint;assembler;[Public, alias : 'FPC_SETJMP']; compilerproc;
|
|
|
+
|
|
|
+function fpc_setjmp(var S : jmp_buf) : longint;assembler;[Public, alias : 'FPC_SETJMP']; compilerproc; nostackframe;
|
|
|
+{$ifdef fpc_abi_call0}
|
|
|
+ asm
|
|
|
+ s32i.n a0,S.a0
|
|
|
+ s32i.n a1,S.a1
|
|
|
+ s32i.n a8,S.a8
|
|
|
+ s32i.n a12,S.a12
|
|
|
+ s32i.n a13,S.a13
|
|
|
+ s32i.n a14,S.a14
|
|
|
+ s32i.n a15,S.a15
|
|
|
+ movi.n a2,0
|
|
|
+ end;
|
|
|
+{$endif fpc_abi_call0}
|
|
|
+{$ifdef fpc_abi_windowed}
|
|
|
asm
|
|
|
movi a2,0
|
|
|
end;
|
|
|
+{$endif fpc_abi_windowed}
|
|
|
|
|
|
|
|
|
-procedure fpc_longjmp(var S : jmp_buf;value : longint);assembler;[Public, alias : 'FPC_LONGJMP']; compilerproc;
|
|
|
+procedure fpc_longjmp(var S : jmp_buf;value : longint);assembler;[Public, alias : 'FPC_LONGJMP']; compilerproc; nostackframe;
|
|
|
+{$ifdef fpc_abi_call0}
|
|
|
asm
|
|
|
+ l32i.n a0,S.a0
|
|
|
+ l32i.n a1,S.a1
|
|
|
+ l32i.n a8,S.a8
|
|
|
+ l32i.n a12,S.a12
|
|
|
+ l32i.n a13,S.a13
|
|
|
+ l32i.n a14,S.a14
|
|
|
+ l32i.n a15,S.a15
|
|
|
+ movi.n a2,1
|
|
|
+ movnez a2,value,value
|
|
|
end;
|
|
|
+{$endif fpc_abi_call0}
|
|
|
+{$ifdef fpc_abi_windowed}
|
|
|
+ asm
|
|
|
+ end;
|
|
|
+{$endif fpc_abi_windowed}
|
|
|
+
|