Przeglądaj źródła

- Cleaned out more assembler hacks around ExitCode variable

git-svn-id: trunk@29560 -
sergei 10 lat temu
rodzic
commit
2efa348b19
1 zmienionych plików z 5 dodań i 38 usunięć
  1. 5 38
      rtl/linux/i386/si_prc.inc

+ 5 - 38
rtl/linux/i386/si_prc.inc

@@ -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 }
-.Lhaltproc:
+  //addl  $12, %esp  { align stack back to 16 bytes }
   {$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}
-  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}
-
+  movl    e,%ebx
   int     $0x80
   int     $0x80
   movl    syscall_nr_exit,%eax
   movl    syscall_nr_exit,%eax
 
 
-{$ifdef FPC_PIC}
-  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}
-
+  movl    e,%ebx
   int     $0x80
   int     $0x80
-  jmp     .Lhaltproc
+  jmp     .Lnodlexitproc
 end;
 end;