mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-13 10:19:19 +02:00
* fix got loading si_c32, resolves #19520 (still uses the call/pop approach because it is faster on modern CPUs)
git-svn-id: trunk@18224 -
This commit is contained in:
parent
6cb6d9ffaf
commit
b5ebe6307f
@ -71,7 +71,7 @@ asm
|
|||||||
call .Lpiclab
|
call .Lpiclab
|
||||||
.Lpiclab:
|
.Lpiclab:
|
||||||
popl %ebx
|
popl %ebx
|
||||||
addl $_GLOBAL_OFFSET_TABLE_,%ebx
|
addl $_GLOBAL_OFFSET_TABLE_+1,%ebx
|
||||||
|
|
||||||
movl dlexitproc@GOT(%ebx),%ecx
|
movl dlexitproc@GOT(%ebx),%ecx
|
||||||
movl %edx,(%ecx)
|
movl %edx,(%ecx)
|
||||||
@ -100,7 +100,7 @@ asm
|
|||||||
call .Lpiclab2
|
call .Lpiclab2
|
||||||
.Lpiclab2:
|
.Lpiclab2:
|
||||||
popl %ebx
|
popl %ebx
|
||||||
addl $_GLOBAL_OFFSET_TABLE_,%ebx
|
addl $_GLOBAL_OFFSET_TABLE_+1,%ebx
|
||||||
movl initialstkptr@GOT(%ebx),%ebx
|
movl initialstkptr@GOT(%ebx),%ebx
|
||||||
movl %esp,(%ebx)
|
movl %esp,(%ebx)
|
||||||
popl %ebx
|
popl %ebx
|
||||||
@ -139,7 +139,7 @@ asm
|
|||||||
call .Lpiclab
|
call .Lpiclab
|
||||||
.Lpiclab:
|
.Lpiclab:
|
||||||
popl %ebx
|
popl %ebx
|
||||||
addl $_GLOBAL_OFFSET_TABLE_,%ebx
|
addl $_GLOBAL_OFFSET_TABLE_+1,%ebx
|
||||||
movl dlexitproc@GOT(%ebx),%eax
|
movl dlexitproc@GOT(%ebx),%eax
|
||||||
movl (%eax),%eax
|
movl (%eax),%eax
|
||||||
{$else FPC_PIC}
|
{$else FPC_PIC}
|
||||||
@ -155,7 +155,7 @@ asm
|
|||||||
call .Lpiclab2
|
call .Lpiclab2
|
||||||
.Lpiclab2:
|
.Lpiclab2:
|
||||||
popl %ebx
|
popl %ebx
|
||||||
addl $_GLOBAL_OFFSET_TABLE_,%ebx
|
addl $_GLOBAL_OFFSET_TABLE_+1,%ebx
|
||||||
movl ExitCode@GOT(%ebx),%ebx
|
movl ExitCode@GOT(%ebx),%ebx
|
||||||
{$if sizeof(ExitCode)=2}
|
{$if sizeof(ExitCode)=2}
|
||||||
movzwl (%ebx),%ebx
|
movzwl (%ebx),%ebx
|
||||||
@ -177,7 +177,7 @@ asm
|
|||||||
call .Lpiclab3
|
call .Lpiclab3
|
||||||
.Lpiclab3:
|
.Lpiclab3:
|
||||||
popl %ebx
|
popl %ebx
|
||||||
addl $_GLOBAL_OFFSET_TABLE_,%ebx
|
addl $_GLOBAL_OFFSET_TABLE_+1,%ebx
|
||||||
movl ExitCode@GOT(%ebx),%ebx
|
movl ExitCode@GOT(%ebx),%ebx
|
||||||
{$if sizeof(ExitCode)=2}
|
{$if sizeof(ExitCode)=2}
|
||||||
movzwl (%ebx),%ebx
|
movzwl (%ebx),%ebx
|
||||||
|
Loading…
Reference in New Issue
Block a user