This is the mail archive of the gcc@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: Wrong mappin of registers in location lists


Andrew Haley <aph@redhat.com> writes:

> Daniel Berlin writes:
>  > 
>  > 
>  > >
>  > > And of course with 64-bit registers:
>  > >
>  > > #define ADDITIONAL_REGISTER_NAMES \
>  > > { { "eax", 0 }, { "edx", 1 }, { "ecx", 2 }, { "ebx", 3 },       \
>  > >   { "esi", 4 }, { "edi", 5 }, { "ebp", 6 }, { "esp", 7 },       \
>  > >   { "rax", 0 }, { "rdx", 1 }, { "rcx", 2 }, { "rbx", 3 },       \
>  > >   { "rsi", 4 }, { "rdi", 5 }, { "rbp", 6 }, { "rsp", 7 },       \
>  > >   { "al", 0 }, { "dl", 1 }, { "cl", 2 }, { "bl", 3 },           \
>  > >   { "ah", 0 }, { "dh", 1 }, { "ch", 2 }, { "bh", 3 },           \
>  > >   { "mm0", 8},  { "mm1", 9},  { "mm2", 10}, { "mm3", 11},       \
>  > >   { "mm4", 12}, { "mm5", 13}, { "mm6", 14}, { "mm7", 15} }
>  > >
>  > > I do not know whether the numbering is wrong or not.
>  > 
>  > However, we do know that the loclist is right, given this information.
>  > 
>  > The numbering says rbx == DW_OP_reg3, which is what we output.
>
> It does, but that's not what Draft 0.21 ABI says.  See Section 3.6.2.

That's a problem.

> Maybe the ABI doc is wrong.

The ABI should be ok, we changed it especially at some point to
reflect GCC usage so I'm surpised to see this.  Perhaps GCC is
inconsistent here or some broken patch went in ;-).



Andreas
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj


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