This is the mail archive of the
mailing list for the binutils project.
RE: [patch gas]: Set correct dwarf2 return column value for x64 windows target
- From: "Pierre Muller" <pierre dot muller at ics-cnrs dot unistra dot fr>
- To: "'Kai Tietz'" <ktietz70 at googlemail dot com>
- Cc: "'Binutils'" <binutils at sourceware dot org>, "'Nick Clifton'" <nickc at redhat dot com>
- Date: Wed, 18 Dec 2013 08:37:03 +0100
- Subject: RE: [patch gas]: Set correct dwarf2 return column value for x64 windows target
- Authentication-results: sourceware.org; auth=none
- References: <AANLkTinDtRSo4e4dNOg1cZ9ptn9ZKv1_mkNJNaaua-OT at mail dot gmail dot com> <52b0ee91 dot 86f7440a dot 25e6 dot 54c3SMTPIN_ADDED_BROKEN at mx dot google dot com> <CAEwic4Y+Wdnmx27gKLzBOB77AgS91NhVX1exzfRpgc8NGzUdmw at mail dot gmail dot com>
> -----Message d'origine-----
> De : firstname.lastname@example.org [mailto:binutils-
> email@example.com] De la part de Kai Tietz
> Envoyé : mercredi 18 décembre 2013 08:19
> À : Pierre Muller
> Cc : Binutils; Nick Clifton
> Objet : Re: [patch gas]: Set correct dwarf2 return column value for x64
> windows target
> Hmm, the call-clobber-set is still different between x86_64 abi and
> x64 ms abi. So this is for sure not the case. It is a bit long ago
> to recall all details. nevertheless save-region for x64 is/was quite
I agree that the ABI specify other register conventions for Microsoft
as compared to the other ABI used by all other OSes.
Nevertheless, the dwarf numbering of x86_64 registers is unique, no?
Thus I do not understand how the return_column, which is
really only the dwarf number associated to the register which
contains the Return Address information could be different.
In any case, xmm15 does not seem to be a reasonable value.
> You weren't trying by accident to use x86_64 abi to interpret x64 one?
Maybe, but again, I don't understand how that could matter.
> 2013/12/18 Pierre Muller <firstname.lastname@example.org>:
> > Hi all,
> > sorry to dig out this very old stuff...
> > but I do not understand that patch which
> > seem to me to be responsible for the fact that
> > mingw64 CFI states that the return column is 32 (which corresponds to
> > register)
> > This is also seen in GDB where info frame always states
> > that register xmm15 is saved at the same location than rip...
> > In fact, I was puzzled by this xmm15 saved register and it took me
> > time
> > to understand why xmm15 was used.
> > I finally tracked it down to the patch below,
> > and by reverting it in gas/cconfig/tc-i386.c
> > I was able to get more sensible frame information both
> > with objdump -W and with GDB.
> > Could it be that the reason of your patch:
> > " which has a different call-clobber set."
> > does not apply anymore and that thus using 16 which is indeed
> > the dwarf register number of RIP register
> > is the correct value?
> > Pierre Muller...
> > tired after a long bug hunt...
> > PS: I also tried out the cygwin64 target and the patch
> > seems also wrong there.
> >> -----Message d'origine-----
> >> De : email@example.com [mailto:binutils-
> >> firstname.lastname@example.org] De la part de Kai Tietz
> >> Envoyé : vendredi 21 janvier 2011 17:06
> >> À : Binutils
> >> Cc : Nick Clifton
> >> Objet : [patch gas]: Set correct dwarf2 return column value for x64
> >> windows target
> >> Hello,
> >> this patch corrects the value of dwarf2_return_column in tc-i386 for
> >> x64 windows, which has a different call-clobber set.
> >> ChangeLog
> >> 2011-01-21 Kai Tietz
> >> * config/tc-i386.c (md_begin): Set for x64 windows COFF
> >> x86_dwarf2_return_column to 32.
> >> Tested for x86-64-pc-mingw32. Ok for apply?
> >> Regards,
> >> Kai