* 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:
florian 2011-08-16 18:45:39 +00:00
parent 6cb6d9ffaf
commit b5ebe6307f

View File

@ -71,7 +71,7 @@ asm
call .Lpiclab
.Lpiclab:
popl %ebx
addl $_GLOBAL_OFFSET_TABLE_,%ebx
addl $_GLOBAL_OFFSET_TABLE_+1,%ebx
movl dlexitproc@GOT(%ebx),%ecx
movl %edx,(%ecx)
@ -100,7 +100,7 @@ asm
call .Lpiclab2
.Lpiclab2:
popl %ebx
addl $_GLOBAL_OFFSET_TABLE_,%ebx
addl $_GLOBAL_OFFSET_TABLE_+1,%ebx
movl initialstkptr@GOT(%ebx),%ebx
movl %esp,(%ebx)
popl %ebx
@ -139,7 +139,7 @@ asm
call .Lpiclab
.Lpiclab:
popl %ebx
addl $_GLOBAL_OFFSET_TABLE_,%ebx
addl $_GLOBAL_OFFSET_TABLE_+1,%ebx
movl dlexitproc@GOT(%ebx),%eax
movl (%eax),%eax
{$else FPC_PIC}
@ -155,7 +155,7 @@ asm
call .Lpiclab2
.Lpiclab2:
popl %ebx
addl $_GLOBAL_OFFSET_TABLE_,%ebx
addl $_GLOBAL_OFFSET_TABLE_+1,%ebx
movl ExitCode@GOT(%ebx),%ebx
{$if sizeof(ExitCode)=2}
movzwl (%ebx),%ebx
@ -177,7 +177,7 @@ asm
call .Lpiclab3
.Lpiclab3:
popl %ebx
addl $_GLOBAL_OFFSET_TABLE_,%ebx
addl $_GLOBAL_OFFSET_TABLE_+1,%ebx
movl ExitCode@GOT(%ebx),%ebx
{$if sizeof(ExitCode)=2}
movzwl (%ebx),%ebx