lkml.org 
[lkml]   [2011]   [Mar]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: X32 psABI status update
    Date
    On Thursday, March 17, 2011 01:21:16 H.J. Lu wrote:
    > On Wed, Mar 16, 2011 at 7:57 PM, Mike Frysinger <vapier@gentoo.org> wrote:
    > > in looking at the gcc files, it doesnt seem like there's any defines
    > > setup to declare x32 directly. instead, you'd have to do something
    > > like: #ifdef __x86_64__
    > > # if __SIZEOF_LONG__ == 8
    > > /* x86_64 */
    > > # else
    > > /* x32 */
    > > # endif
    > > #endif
    > >
    > > any plans on adding an __x32__ (or whatever) cpp symbol to keep people
    > > from coming up with their own special/broken crap ? or are there some
    > > already that i'm not seeing ?
    >
    > The idea is in most cases, you only need to check __x86_64__ since x32 and
    > x86-64 are very close. In some cases, x32 is very different from x86_64,
    > like assembly codes on long and pointer, you can check __x86_64__ and
    > __LP64__. In glibc, I used a different approach by using macros REG_RAX,
    > .., MOV_LP, ADD_LP, SUB_LP and CMP_LP in assembly codes.

    while i agree with you in general that this is how people should be doing
    things, in practice i often see people fishing around. education only goes so
    far, so if there was an __x32__ define, i feel like people are more likely to
    get it right than wrong.

    i dont have any use cases off the top of my head, but i wouldnt be surprised
    if the heavy inline assembly people (like the multimedia peeps e.g. libav)
    approached it this way. rather than google for documentation, look at the cpp
    output between -m64 and -mx32 and see what sticks out. "__x32__" would
    certainly do that.
    -mike
    [unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2011-03-21 06:11    [W:0.026 / U:0.364 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site