mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 07:09:23 +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}
|
{$ifdef FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||||
movq (%rax),%rax
|
movq (%rax),%rax
|
||||||
|
{$ifndef FPC_STATICRIPFIXED}
|
||||||
movq Errno@GOTPCREL(%rip),%r11
|
movq Errno@GOTPCREL(%rip),%r11
|
||||||
|
{$else}
|
||||||
|
leaq Errno(%rip),%r11
|
||||||
|
{$endif}
|
||||||
{$else FPC_PIC}
|
{$else FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc,%rax
|
movq fpc_threadvar_relocate_proc,%rax
|
||||||
leaq Errno,%r11
|
leaq Errno,%r11
|
||||||
@ -65,7 +69,11 @@ asm
|
|||||||
{$ifdef FPC_PIC}
|
{$ifdef FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||||
movq (%rax),%rax
|
movq (%rax),%rax
|
||||||
|
{$ifndef FPC_STATICRIPFIXED}
|
||||||
movq Errno@GOTPCREL(%rip),%r11
|
movq Errno@GOTPCREL(%rip),%r11
|
||||||
|
{$else}
|
||||||
|
leaq Errno(%rip),%r11
|
||||||
|
{$endif}
|
||||||
{$else FPC_PIC}
|
{$else FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc,%rax
|
movq fpc_threadvar_relocate_proc,%rax
|
||||||
leaq Errno,%r11
|
leaq Errno,%r11
|
||||||
@ -97,7 +105,11 @@ asm
|
|||||||
{$ifdef FPC_PIC}
|
{$ifdef FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||||
movq (%rax),%rax
|
movq (%rax),%rax
|
||||||
|
{$ifndef FPC_STATICRIPFIXED}
|
||||||
movq Errno@GOTPCREL(%rip),%r11
|
movq Errno@GOTPCREL(%rip),%r11
|
||||||
|
{$else}
|
||||||
|
leaq Errno(%rip),%r11
|
||||||
|
{$endif}
|
||||||
{$else FPC_PIC}
|
{$else FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc,%rax
|
movq fpc_threadvar_relocate_proc,%rax
|
||||||
leaq Errno,%r11
|
leaq Errno,%r11
|
||||||
@ -130,7 +142,11 @@ asm
|
|||||||
{$ifdef FPC_PIC}
|
{$ifdef FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||||
movq (%rax),%rax
|
movq (%rax),%rax
|
||||||
|
{$ifndef FPC_STATICRIPFIXED}
|
||||||
movq Errno@GOTPCREL(%rip),%r11
|
movq Errno@GOTPCREL(%rip),%r11
|
||||||
|
{$else}
|
||||||
|
leaq Errno(%rip),%r11
|
||||||
|
{$endif}
|
||||||
{$else FPC_PIC}
|
{$else FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc,%rax
|
movq fpc_threadvar_relocate_proc,%rax
|
||||||
leaq Errno,%r11
|
leaq Errno,%r11
|
||||||
@ -164,7 +180,11 @@ asm
|
|||||||
{$ifdef FPC_PIC}
|
{$ifdef FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||||
movq (%rax),%rax
|
movq (%rax),%rax
|
||||||
|
{$ifndef FPC_STATICRIPFIXED}
|
||||||
movq Errno@GOTPCREL(%rip),%r11
|
movq Errno@GOTPCREL(%rip),%r11
|
||||||
|
{$else}
|
||||||
|
leaq Errno(%rip),%r11
|
||||||
|
{$endif}
|
||||||
{$else FPC_PIC}
|
{$else FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc,%rax
|
movq fpc_threadvar_relocate_proc,%rax
|
||||||
leaq Errno,%r11
|
leaq Errno,%r11
|
||||||
@ -199,7 +219,11 @@ asm
|
|||||||
{$ifdef FPC_PIC}
|
{$ifdef FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||||
movq (%rax),%rax
|
movq (%rax),%rax
|
||||||
|
{$ifndef FPC_STATICRIPFIXED}
|
||||||
movq Errno@GOTPCREL(%rip),%r11
|
movq Errno@GOTPCREL(%rip),%r11
|
||||||
|
{$else}
|
||||||
|
leaq Errno(%rip),%r11
|
||||||
|
{$endif}
|
||||||
{$else FPC_PIC}
|
{$else FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc,%rax
|
movq fpc_threadvar_relocate_proc,%rax
|
||||||
leaq Errno,%r11
|
leaq Errno,%r11
|
||||||
@ -235,7 +259,11 @@ asm
|
|||||||
{$ifdef FPC_PIC}
|
{$ifdef FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||||
movq (%rax),%rax
|
movq (%rax),%rax
|
||||||
|
{$ifndef FPC_STATICRIPFIXED}
|
||||||
movq Errno@GOTPCREL(%rip),%r11
|
movq Errno@GOTPCREL(%rip),%r11
|
||||||
|
{$else}
|
||||||
|
leaq Errno(%rip),%r11
|
||||||
|
{$endif}
|
||||||
{$else FPC_PIC}
|
{$else FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc,%rax
|
movq fpc_threadvar_relocate_proc,%rax
|
||||||
leaq Errno,%r11
|
leaq Errno,%r11
|
||||||
@ -275,7 +303,11 @@ asm
|
|||||||
{$ifdef FPC_PIC}
|
{$ifdef FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
movq fpc_threadvar_relocate_proc@GOTPCREL(%rip),%rax
|
||||||
movq (%rax),%rax
|
movq (%rax),%rax
|
||||||
|
{$ifndef FPC_STATICRIPFIXED}
|
||||||
movq Errno@GOTPCREL(%rip),%r11
|
movq Errno@GOTPCREL(%rip),%r11
|
||||||
|
{$else}
|
||||||
|
leaq Errno(%rip),%r11
|
||||||
|
{$endif}
|
||||||
{$else FPC_PIC}
|
{$else FPC_PIC}
|
||||||
movq fpc_threadvar_relocate_proc,%rax
|
movq fpc_threadvar_relocate_proc,%rax
|
||||||
leaq Errno,%r11
|
leaq Errno,%r11
|
||||||
|
@ -39,11 +39,11 @@ _start:
|
|||||||
movq -40(%rbp), %rax
|
movq -40(%rbp), %rax
|
||||||
movq (%rax), %rax
|
movq (%rax), %rax
|
||||||
movl %eax, -28(%rbp)
|
movl %eax, -28(%rbp)
|
||||||
movl %eax, operatingsystem_parameter_argc
|
movl %eax, operatingsystem_parameter_argc(%rip)
|
||||||
movq -40(%rbp), %rax
|
movq -40(%rbp), %rax
|
||||||
addq $8, %rax
|
addq $8, %rax
|
||||||
movq %rax, -24(%rbp)
|
movq %rax, -24(%rbp)
|
||||||
movq %rax, operatingsystem_parameter_argv
|
movq %rax, operatingsystem_parameter_argv(%rip)
|
||||||
movq -40(%rbp), %rdx
|
movq -40(%rbp), %rdx
|
||||||
addq $16, %rdx
|
addq $16, %rdx
|
||||||
movl -28(%rbp), %eax
|
movl -28(%rbp), %eax
|
||||||
@ -52,7 +52,7 @@ _start:
|
|||||||
leaq (%rdx,%rax), %rax
|
leaq (%rdx,%rax), %rax
|
||||||
movq %rax, -16(%rbp)
|
movq %rax, -16(%rbp)
|
||||||
movq -16(%rbp), %rax
|
movq -16(%rbp), %rax
|
||||||
movq %rax, operatingsystem_parameter_envp
|
movq %rax, operatingsystem_parameter_envp(%rip)
|
||||||
movq %rax, environ(%rip)
|
movq %rax, environ(%rip)
|
||||||
cmpl $0, -28(%rbp)
|
cmpl $0, -28(%rbp)
|
||||||
jle .L2
|
jle .L2
|
||||||
|
@ -39,21 +39,20 @@ _start:
|
|||||||
movq -8(%rbp), %rax
|
movq -8(%rbp), %rax
|
||||||
movl (%rax), %eax
|
movl (%rax), %eax
|
||||||
movl %eax, -20(%rbp)
|
movl %eax, -20(%rbp)
|
||||||
movl %eax, operatingsystem_parameter_argc
|
movl %eax, operatingsystem_parameter_argc(%rip)
|
||||||
movq -8(%rbp), %rax
|
movq -8(%rbp), %rax
|
||||||
addq $8, %rax
|
addq $8, %rax
|
||||||
movq %rax, -32(%rbp)
|
movq %rax, -32(%rbp)
|
||||||
movq %rax, operatingsystem_parameter_argv
|
movq %rax, operatingsystem_parameter_argv(%rip)
|
||||||
movl -20(%rbp), %eax
|
movl -20(%rbp), %eax
|
||||||
cltq
|
cltq
|
||||||
salq $3, %rax
|
salq $3, %rax
|
||||||
addq -8(%rbp), %rax
|
addq -8(%rbp), %rax
|
||||||
addq $16, %rax
|
addq $16, %rax
|
||||||
movq %rax, -40(%rbp)
|
movq %rax, -40(%rbp)
|
||||||
movq %rax, operatingsystem_parameter_envp
|
movq %rax, operatingsystem_parameter_envp(%rip)
|
||||||
movq -40(%rbp), %rax
|
movq -40(%rbp), %rax
|
||||||
movq %rax, environ(%rip)
|
movq %rax, environ(%rip)
|
||||||
movq %rax,environ
|
|
||||||
cmpl $0, -20(%rbp)
|
cmpl $0, -20(%rbp)
|
||||||
jle .L5
|
jle .L5
|
||||||
movq -32(%rbp), %rax
|
movq -32(%rbp), %rax
|
||||||
|
@ -39,21 +39,20 @@ _start:
|
|||||||
movq -8(%rbp), %rax
|
movq -8(%rbp), %rax
|
||||||
movl (%rax), %eax
|
movl (%rax), %eax
|
||||||
movl %eax, -20(%rbp)
|
movl %eax, -20(%rbp)
|
||||||
movl %eax, operatingsystem_parameter_argc
|
movl %eax, operatingsystem_parameter_argc(%rip)
|
||||||
movq -8(%rbp), %rax
|
movq -8(%rbp), %rax
|
||||||
addq $8, %rax
|
addq $8, %rax
|
||||||
movq %rax, -32(%rbp)
|
movq %rax, -32(%rbp)
|
||||||
movq %rax, operatingsystem_parameter_argv
|
movq %rax, operatingsystem_parameter_argv(%rip)
|
||||||
movl -20(%rbp), %eax
|
movl -20(%rbp), %eax
|
||||||
cltq
|
cltq
|
||||||
salq $3, %rax
|
salq $3, %rax
|
||||||
addq -8(%rbp), %rax
|
addq -8(%rbp), %rax
|
||||||
addq $16, %rax
|
addq $16, %rax
|
||||||
movq %rax, -40(%rbp)
|
movq %rax, -40(%rbp)
|
||||||
movq %rax, operatingsystem_parameter_envp
|
movq %rax, operatingsystem_parameter_envp(%rip)
|
||||||
movq -40(%rbp), %rax
|
movq -40(%rbp), %rax
|
||||||
movq %rax, environ(%rip)
|
movq %rax, environ(%rip)
|
||||||
movq %rax,environ
|
|
||||||
cmpl $0, -20(%rbp)
|
cmpl $0, -20(%rbp)
|
||||||
jle .L5
|
jle .L5
|
||||||
movq -32(%rbp), %rax
|
movq -32(%rbp), %rax
|
||||||
|
Loading…
Reference in New Issue
Block a user