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
 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: get_eip.diff
Type: application/octet-stream
Size: 2054 bytes
Desc: not available
Url :
http://lists.xiph.org/pipermail/flac-dev/attachments/20140103/b797d34c/attachment.obj