- Cleaned out more assembler hacks around ExitCode variable

git-svn-id: trunk@29560 -
This commit is contained in:
sergei 2015-01-26 20:08:11 +00:00
parent d6f5bcee45
commit 2efa348b19

View File

@ -116,10 +116,9 @@ asm
end; end;
procedure _FPC_proc_haltproc; assembler; nostackframe; public name '_haltproc'; procedure _FPC_proc_haltproc(e:longint); cdecl; assembler; public name '_haltproc';
asm asm
addl $12, %esp { align stack back to 16 bytes } //addl $12, %esp { align stack back to 16 bytes }
.Lhaltproc:
{$ifdef FPC_PIC} {$ifdef FPC_PIC}
call fpc_geteipasebxlocal call fpc_geteipasebxlocal
addl $_GLOBAL_OFFSET_TABLE_,%ebx addl $_GLOBAL_OFFSET_TABLE_,%ebx
@ -134,44 +133,12 @@ asm
.Lnodlexitproc: .Lnodlexitproc:
movl syscall_nr_exit_group,%eax movl syscall_nr_exit_group,%eax
{$ifdef FPC_PIC} movl e,%ebx
call fpc_geteipasebxlocal
addl $_GLOBAL_OFFSET_TABLE_,%ebx
movl ExitCode@GOT(%ebx),%ebx
{$if sizeof(ExitCode)=2}
movzwl (%ebx),%ebx
{$else}
mov (%ebx),%ebx
{$endif}
{$else FPC_PIC}
{$if sizeof(ExitCode)=2}
movzwl ExitCode,%ebx
{$else}
mov ExitCode,%ebx
{$endif}
{$endif FPC_PIC}
int $0x80 int $0x80
movl syscall_nr_exit,%eax movl syscall_nr_exit,%eax
{$ifdef FPC_PIC} movl e,%ebx
call fpc_geteipasebxlocal
addl $_GLOBAL_OFFSET_TABLE_,%ebx
movl ExitCode@GOT(%ebx),%ebx
{$if sizeof(ExitCode)=2}
movzwl (%ebx),%ebx
{$else}
mov (%ebx),%ebx
{$endif}
{$else FPC_PIC}
{$if sizeof(ExitCode)=2}
movzwl ExitCode,%ebx
{$else}
mov ExitCode,%ebx
{$endif}
{$endif FPC_PIC}
int $0x80 int $0x80
jmp .Lhaltproc jmp .Lnodlexitproc
end; end;