According to Agner Fog, "...you must make sure that all calls are matched with returns. Never jump out of a subroutine without a return and never use a return as an indirect jump."
(see paragraph 3.15 in microarchitecture.pdf and
examples 3.5a and 3.5b in optimizing_assembly.pdf)
Basically this patch replaces
call .get_eip0
.get_eip0:
pop eax
with
call .mov_eip_to_eax
.get_eip0:
and
.mov_eip_to_eax:
mov eax, [esp]
ret
get_eip.diff
Description: Binary data
_______________________________________________ flac-dev mailing list [email protected] http://lists.xiph.org/mailman/listinfo/flac-dev
