This is the mail archive of the gcc-bugs@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]

[Bug c/13559] New: GCC generates more code that doesn't conform to the SPARC 64-bit psABI


The following code:

struct sfi { float f; int i; int j; };

struct sfi xfi = { 1.0, 1, 2 };

struct sfc
foo (void)
{
  return xfi;
}

Generates code that is different than the psABI specifies.  The contents of
xfi.f and xfi.i are correctly returned in %i0/%o0 (calle/caller), but xfi.j is
returned in the right half (less-significant word) of %i1/%o1 wheras according
to the psABI it should be returned in the left half (more-significant word). 
The latter is indeed what the Sun compiler on Solaris does.

-- 
           Summary: GCC generates more code that doesn't conform to the
                    SPARC 64-bit psABI
           Product: gcc
           Version: 3.3.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: kettenis at gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: sparc64-unknown-freebsd5.2
  GCC host triplet: sparc64-unknown-freebsd5.2
GCC target triplet: sparc64-unknown-freebsd5.2


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13559


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