This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, i386] Remove EBX usage from asm code


Agree, I've missed the usage of the function
"__register_frame_info_bases" (frame_dummy assembly had only indirect
call when I miss "-pie" in compilation).
There is no reference on glibc that way. Sorry for the confusion.
So that is potentially buggy right now.


On Mon, Jan 12, 2015 at 1:50 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Mon, Jan 12, 2015 at 01:36:05PM +0300, Evgeny Stupachenko wrote:
>> "frame_dummy" does not use EBX in allocation now as there are enough
>> other registers (that we don't need to save/restore). So if we do not
>> modify "frame_dummy" EBX should stay unchanged.
>> "frame_dummy" does not initialize EBX register at the beginning it
>> expects that EBX is pic from glibc
>> "frame_dummy" is called from glibc and while we have glibc compiled by
>> 4.9 or older compiler EBX should come to "frame_dummy" as pic register
>
> I also don't understand how is this related to glibc in any way.
> From my understanding, the macro relied on %ebx being set to
> _GLOBAL_OFFSET_TABLE_ because the frame_dummy function does access
> GOT, so before the i?86 PIC reg changes it was computing %ebx.
>
>         Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]