This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB 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: Also check for `movl %esp, %ebp' for x32


On Thu, May 3, 2012 at 2:50 PM, Mark Kettenis <mark.kettenis@xs4all.nl> wrote:
>> >> I did have a look at it, but still have some questions.
>> >>
>> >>> Hi,
>> >>>
>> >>> X32 may use `movl %esp, %ebp' in prologue. ?This patch checks it for
>> >>> x32. ?Tested on Linux/x86-64. ?OK for trunk?
>> >>
>> >> But the prologues generated by various compilers are expected to be
>> >> otherwise the same for both the x32 ABI and the normal 64-bit ABI? ?I
>> >> guess x32 has to use "pushq %rbp" as "pushl %ebp" isn't available.
>> >> And I guess you want to keep the stack 16-byte aligned anyway. ?I
>> >> suppose that "movq %rsp, %rbp" is still ok for x32, but "movl %esp,
>> >> %ebp" can be encoded in less bytes, so it might be a bit more
>> >> efficient for x32.
>> >
>> > That is correct.
>>
>> Is my patch OK to install?
>
> Sorry, no. ?I'm really unhappy with that multi-line if clause. ?It
> really is hard to parse. ?I'm trying to come up with a suggestion to
> make this better, but so far haven't succeeded.
>
> Does GCC ever generate the `mov %rsp,%rsp' instruction for x32?

Yes.  With -maddress-mode=long, gcc generates "mov %rsp,%rsp".
With -maddress-mode=short, gcc generates "mov %esp,%esp".


-- 
H.J.


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