|
@@ -1434,45 +1434,3 @@ begin
|
|
CtrlBreakHandler := Handler;
|
|
CtrlBreakHandler := Handler;
|
|
end;
|
|
end;
|
|
{$ENDIF FPC_HAS_SETCTRLBREAKHANDLER}
|
|
{$ENDIF FPC_HAS_SETCTRLBREAKHANDLER}
|
|
-
|
|
|
|
-Function fpc_marklabel (Var S : Jmp_buf) : longint;assembler;nostackframe;
|
|
|
|
-asm
|
|
|
|
-{$ifndef REGCALL}
|
|
|
|
- movl 4(%esp),%eax
|
|
|
|
-{$endif}
|
|
|
|
- movl %ebx,Jmp_buf.ebx(%eax)
|
|
|
|
- movl %esi,Jmp_buf.esi(%eax)
|
|
|
|
- movl %edi,Jmp_buf.edi(%eax)
|
|
|
|
- movl %ebp,Jmp_buf.bp(%eax)
|
|
|
|
-{$ifdef REGCALL}
|
|
|
|
- leal 4(%esp),%edi
|
|
|
|
-{$else}
|
|
|
|
- leal 8(%esp),%edi
|
|
|
|
-{$endif}
|
|
|
|
- movl %edi,Jmp_buf.sp(%eax)
|
|
|
|
- movl (%esp),%edi
|
|
|
|
- movl %edi,Jmp_buf.pc(%eax)
|
|
|
|
- movl Jmp_buf.edi(%eax),%edi
|
|
|
|
- xorl %eax,%eax
|
|
|
|
-end;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-procedure fpc_dogoto(Var S : Jmp_buf); assembler;nostackframe;
|
|
|
|
-asm
|
|
|
|
-{$ifdef REGCALL}
|
|
|
|
- xchgl %edx,%eax
|
|
|
|
-{$else}
|
|
|
|
- movl 4(%esp),%edx
|
|
|
|
- movl 8(%esp),%eax
|
|
|
|
-{$endif}
|
|
|
|
- movl $1,%eax
|
|
|
|
- movl Jmp_buf.ebx(%edx),%ebx
|
|
|
|
- movl Jmp_buf.esi(%edx),%esi
|
|
|
|
- movl Jmp_buf.edi(%edx),%edi
|
|
|
|
- movl Jmp_buf.bp(%edx),%ebp
|
|
|
|
- movl Jmp_buf.sp(%edx),%esp
|
|
|
|
- // we should also clear the fpu
|
|
|
|
- // fninit no must be done elsewhere PM
|
|
|
|
- // or we should reset the control word also
|
|
|
|
- jmp Jmp_buf.pc(%edx)
|
|
|
|
-end;
|
|
|