This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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 gas]: Set correct dwarf2 return column value for x64 windows target



> -----Message d'origine-----
> De : binutils-owner@sourceware.org [mailto:binutils-
> owner@sourceware.org] 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
> different.

  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.

Pierre
 
> Kai
> 
> 2013/12/18 Pierre Muller <pierre.muller@ics-cnrs.unistra.fr>:
> >   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
> xmm15
> > 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
> some
> > 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 : binutils-owner@sourceware.org [mailto:binutils-
> >> owner@sourceware.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
> target
> >>         x86_dwarf2_return_column to 32.
> >>
> >> Tested for x86-64-pc-mingw32. Ok for apply?
> >>
> >> Regards,
> >> Kai


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