mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 03:06:34 +02:00
* Fix PIC code for BSD x86_64 syscall and x86_64 freebsd startup assembler files
git-svn-id: trunk@19181 -
This commit is contained in:
parent
f8279d9070
commit
b9009d8c02
@ -34,7 +34,11 @@ asm
|
||||
{$ifdef FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||
movq (%rax),%rax
|
||||
{$ifndef FPC_STATICRIPFIXED}
|
||||
movq Errno@GOTPCREL(%rip),%r11
|
||||
{$else}
|
||||
leaq Errno(%rip),%r11
|
||||
{$endif}
|
||||
{$else FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc,%rax
|
||||
leaq Errno,%r11
|
||||
@ -65,7 +69,11 @@ asm
|
||||
{$ifdef FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||
movq (%rax),%rax
|
||||
{$ifndef FPC_STATICRIPFIXED}
|
||||
movq Errno@GOTPCREL(%rip),%r11
|
||||
{$else}
|
||||
leaq Errno(%rip),%r11
|
||||
{$endif}
|
||||
{$else FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc,%rax
|
||||
leaq Errno,%r11
|
||||
@ -97,7 +105,11 @@ asm
|
||||
{$ifdef FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||
movq (%rax),%rax
|
||||
{$ifndef FPC_STATICRIPFIXED}
|
||||
movq Errno@GOTPCREL(%rip),%r11
|
||||
{$else}
|
||||
leaq Errno(%rip),%r11
|
||||
{$endif}
|
||||
{$else FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc,%rax
|
||||
leaq Errno,%r11
|
||||
@ -130,7 +142,11 @@ asm
|
||||
{$ifdef FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||
movq (%rax),%rax
|
||||
{$ifndef FPC_STATICRIPFIXED}
|
||||
movq Errno@GOTPCREL(%rip),%r11
|
||||
{$else}
|
||||
leaq Errno(%rip),%r11
|
||||
{$endif}
|
||||
{$else FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc,%rax
|
||||
leaq Errno,%r11
|
||||
@ -164,7 +180,11 @@ asm
|
||||
{$ifdef FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||
movq (%rax),%rax
|
||||
{$ifndef FPC_STATICRIPFIXED}
|
||||
movq Errno@GOTPCREL(%rip),%r11
|
||||
{$else}
|
||||
leaq Errno(%rip),%r11
|
||||
{$endif}
|
||||
{$else FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc,%rax
|
||||
leaq Errno,%r11
|
||||
@ -199,7 +219,11 @@ asm
|
||||
{$ifdef FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||
movq (%rax),%rax
|
||||
{$ifndef FPC_STATICRIPFIXED}
|
||||
movq Errno@GOTPCREL(%rip),%r11
|
||||
{$else}
|
||||
leaq Errno(%rip),%r11
|
||||
{$endif}
|
||||
{$else FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc,%rax
|
||||
leaq Errno,%r11
|
||||
@ -235,7 +259,11 @@ asm
|
||||
{$ifdef FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||
movq (%rax),%rax
|
||||
{$ifndef FPC_STATICRIPFIXED}
|
||||
movq Errno@GOTPCREL(%rip),%r11
|
||||
{$else}
|
||||
leaq Errno(%rip),%r11
|
||||
{$endif}
|
||||
{$else FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc,%rax
|
||||
leaq Errno,%r11
|
||||
@ -275,7 +303,11 @@ asm
|
||||
{$ifdef FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||
movq (%rax),%rax
|
||||
{$ifndef FPC_STATICRIPFIXED}
|
||||
movq Errno@GOTPCREL(%rip),%r11
|
||||
{$else}
|
||||
leaq Errno(%rip),%r11
|
||||
{$endif}
|
||||
{$else FPC_PIC}
|
||||
movq fpc_threadvar_relocate_proc,%rax
|
||||
leaq Errno,%r11
|
||||
|
@ -39,11 +39,11 @@ _start:
|
||||
movq -40(%rbp), %rax
|
||||
movq (%rax), %rax
|
||||
movl %eax, -28(%rbp)
|
||||
movl %eax, operatingsystem_parameter_argc
|
||||
movl %eax, operatingsystem_parameter_argc(%rip)
|
||||
movq -40(%rbp), %rax
|
||||
addq $8, %rax
|
||||
movq %rax, -24(%rbp)
|
||||
movq %rax, operatingsystem_parameter_argv
|
||||
movq %rax, operatingsystem_parameter_argv(%rip)
|
||||
movq -40(%rbp), %rdx
|
||||
addq $16, %rdx
|
||||
movl -28(%rbp), %eax
|
||||
@ -52,7 +52,7 @@ _start:
|
||||
leaq (%rdx,%rax), %rax
|
||||
movq %rax, -16(%rbp)
|
||||
movq -16(%rbp), %rax
|
||||
movq %rax, operatingsystem_parameter_envp
|
||||
movq %rax, operatingsystem_parameter_envp(%rip)
|
||||
movq %rax, environ(%rip)
|
||||
cmpl $0, -28(%rbp)
|
||||
jle .L2
|
||||
|
@ -39,21 +39,20 @@ _start:
|
||||
movq -8(%rbp), %rax
|
||||
movl (%rax), %eax
|
||||
movl %eax, -20(%rbp)
|
||||
movl %eax, operatingsystem_parameter_argc
|
||||
movl %eax, operatingsystem_parameter_argc(%rip)
|
||||
movq -8(%rbp), %rax
|
||||
addq $8, %rax
|
||||
movq %rax, -32(%rbp)
|
||||
movq %rax, operatingsystem_parameter_argv
|
||||
movq %rax, operatingsystem_parameter_argv(%rip)
|
||||
movl -20(%rbp), %eax
|
||||
cltq
|
||||
salq $3, %rax
|
||||
addq -8(%rbp), %rax
|
||||
addq $16, %rax
|
||||
movq %rax, -40(%rbp)
|
||||
movq %rax, operatingsystem_parameter_envp
|
||||
movq %rax, operatingsystem_parameter_envp(%rip)
|
||||
movq -40(%rbp), %rax
|
||||
movq %rax, environ(%rip)
|
||||
movq %rax,environ
|
||||
cmpl $0, -20(%rbp)
|
||||
jle .L5
|
||||
movq -32(%rbp), %rax
|
||||
|
@ -39,21 +39,20 @@ _start:
|
||||
movq -8(%rbp), %rax
|
||||
movl (%rax), %eax
|
||||
movl %eax, -20(%rbp)
|
||||
movl %eax, operatingsystem_parameter_argc
|
||||
movl %eax, operatingsystem_parameter_argc(%rip)
|
||||
movq -8(%rbp), %rax
|
||||
addq $8, %rax
|
||||
movq %rax, -32(%rbp)
|
||||
movq %rax, operatingsystem_parameter_argv
|
||||
movq %rax, operatingsystem_parameter_argv(%rip)
|
||||
movl -20(%rbp), %eax
|
||||
cltq
|
||||
salq $3, %rax
|
||||
addq -8(%rbp), %rax
|
||||
addq $16, %rax
|
||||
movq %rax, -40(%rbp)
|
||||
movq %rax, operatingsystem_parameter_envp
|
||||
movq %rax, operatingsystem_parameter_envp(%rip)
|
||||
movq -40(%rbp), %rax
|
||||
movq %rax, environ(%rip)
|
||||
movq %rax,environ
|
||||
cmpl $0, -20(%rbp)
|
||||
jle .L5
|
||||
movq -32(%rbp), %rax
|
||||
|
Loading…
Reference in New Issue
Block a user