optymalizacja kodu wynikowego a biblioteki dzielone
Miłosz Rzeźnikowski
majkl at op.pl
Mon Jul 3 15:12:04 CEST 2006
Dnia Sat, 1 Jul 2006 15:04:10 +0200
Paweł Sikora <pluto at agmk.net> napisał(a):
> (opcja -fPIE dla programów, lub -fPIC dla bibliotek).
>
> compute:
> call __i686.get_pc_thunk.cx [1]
> addl $_GLOBAL_OFFSET_TABLE_, %ecx [1]
> movl x at GOT(%ecx), %edx [2]
> movl y at GOTOFF(%ecx), %eax [3]
> addl (%edx), %eax [2]
> ret
>
> .local y
> .comm y,4,4
> .comm x,4,4
>
> __i686.get_pc_thunk.cx:
> movl (%esp), %ecx
> ret
>
>
> np. w przypadku x86-64 (które ma nowy tryb adresowania względem
> wskaźnika instrukcji %rip) powyższe dwa warianty kodu wyglądają tak:
> (z -fPIE)
> compute:
> movq x at GOTPCREL(%rip), %rdx
> movl y(%rip), %eax
> addl (%rdx), %eax
> ret
domyslam sie ze to relocated instruction
pointer, rzeczywiście ciekawy wynalazek.
> jak czujesz niedosyt, to ponękaj gugla: ELF + GOT, ELF + PLT
> oraz zerknij w http://www.phrack.org/show.php?p=56&a=7
dzieki wielkie :)
poczułem że jednak ass to podstawa i trzeba go ogarnąć.
More information about the pld-devel-pl
mailing list