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]

Re: sparc64 support for Solaris


   Date: Sun, 19 Oct 1997 16:05:50 -0400
   From: Fred Richardson <frichard@bbn.com>

   >> Now, do you want to help us, and submit changes to the doc that
   >> document this better so that next time we can say RTFM?  ;-)

   I would like to, but I'm still confused...

       Sun describes my machine (Ultra 1 Model 170) as having a 64 bit,
       v9 instruction set CPU.  It sounds like (based on the last few
       mailings on this topic) Sol2.5.x doesn't support 64 bit context
       switches.

As has been noted elsewhere, the full 64 bits of %g and %o
are saved, but that's it.  I haven't seen jfc's patch for cmpdi/etc.
but in general getting GCC to efficiently support this isn't something
I've wanted to spend time on [though others might].

       Now, I noticed that "v9" and "sparc64" must both be
       true (you can't have one without the other).  Is this an inherent
       limitation for sparc-sol2.5, or is this a yet to be resolved
       issue for GCC's sparc support?

Inherent limitation.  You have to distinguish between what the cpu
provides and what the o/s provides.

       Given all that, are these statements accurate?

       >> "v9" is used to specify a true 64 bit architecture.

       So an Ultra 1 Model 170 is not "true 64 bit" if it's running
       Sol2.5.x  Could it be 64 bit if it's running some other
       (newer) version of Solaris.

Yes.

       >> "v8plus" is what Sun calls Solaris2 running on UltraSPARC's.

       But then what does -mcpu=ultrasparc mean?   Is there a difference
       between this and -mcpu=v8plus?

The difference is that specifying -mcpu=ultrasparc tells gcc to schedule
code for the ultrasparc,  -mcpu=v8plus doesn't specify a particular
pipeline to schedule for.

Also note that no one has spent time tuning the sparc port for the
haifa scheduler [at least I haven't seen any patches], so enabling
the haifa scheduler for the sparc port won't buy as much as it technically
can.

       Also, this sounds discouraging:
	   sparc.h:123    /* ??? v8plus/v9/ultrasparc handling is tentative */
       I wonder if this implies that the support isn't really there yet.

Depends upon how you define "support".  The point about being "tentative"
is that when that was written, there was no 64 bit o/s [ok, there is HAL's
port of Solaris, but egcs/gcc2 doesn't support that]. [I realize linux64
may have existed at that time, but the gcc work to finish the port
hadn't been completed yet, hence the word "tentative"].

   I don't know the answers to these.  I also read in the Sun CC man page
   that specifying "-fast" causes a set of inline math functions to be
   used.  I wonder if I can use these with GCC...

Nope.  But then what are these inline functions?  If they're just
cover functions to hardware instructions, one could write ones own
[e.g. see math-68881.h in the gcc sources].


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