"Peter C. Damron" wrote:
> > Roland Mainz writes:
> > > usr/src/Makefile.master references the value "v9c" as option for the Sun
> > > Studio compiler...
> >
> > A quick google search leads to discussion of SPARC64 VI CPUs,
> > including a reference on this page:
> >
> >   http://developers.sun.com/sunstudio/support/Ccompare.html
> >
> > > ... but the manpage cc(1) does not reference it. Is this a documentation
> > > bug in cc(1) or something else ?
> >
> > The history here seems murky.  CR 6520539 seems to describe the
> > option, but there's nothing I can see in the documentation, and the
> > related CRs for implementing it don't mention it at all.
> 
> [Sorry, I get this mailing list as an digest,
> and although it says it's daily,
> it has been very irregularly delivered...]
> 
> Are you really sure you want to know?

Yes... I always like to dig around a bit to learn _why_ things were done
in a particular way, even if the matching stuff is (today) obsolete...

> Historically, there are three different meanings for -xarch=v9c
> in the Sun compilers.
> 
> A.
> Back in about 1995 when we were creating 64-bit Solaris,
> The -xarch=v9c option was used for some kind
> of intermediate code generation.
> It's been too long now, and I don't remember exactly what it did...

Is there a way to check the SCCS history to see for what it was used ?

> It looks like those references in usr/src/Makefile.master
> must date back to those days.

Ok...

> I cannot find any code that implemented "-Wc,-Qiselect-v9abiwarn=1",
> but it is possible that it was in some
> intermediate compiler version for a while
> around that same time period.

Ok...

> B.
> In the early 2000's, Sun was developing a processor
> code named millennium, and that processor included
> some new instructions beyond what UltraSPARC III included.
> Since we had used -xarch={v8plub,v9b} for the VIS2
> extensions on UltraSPARC III, it seemed likely
> that we would use v8pluc/v9c for millennium.
> That processor was cancelled,
> so those compiler options were unused,
> though there was some compiler code
> associated with those options.

Just curious: Is there a way to get a short description which new
instructions were planned for the "Millenium" CPU ? Were this new VIS
extensions, something like memory copy functions (which are somewhere on
my wishlist for a future Niagara (e.g. 3rd pipeline exclusively for
memory moving/copy/compare/count to keep the other two pipelines free
(details on demand))), prefetch instructions, conditional store, 128bit
float in hardware or something else ?

> C.
> In about 2006, Sun and Fujitsu released
> the SPARC64 VI based SPARC Enterprise Servers (Mx000 series),
> and those SPARC64 VI chips included some new
> instructions, like floating-point, fused multiply-add.
> So, we ripped out the millennium code,
> and added the SPARC64 VI code,
> and tentatively called it -xarch={v8plusc,v9c}.

Slightly offtopic: Is it possible to emulate the fused multiply-add
instructions in the kernel (like the current 128bit floats are emulated
since the SPARCv9 spec defines them but no hardware implements these
instructions) ?
 
> But in the middle of that release,
> there was a decision to change our -xarch option spellings
> and use the -m32/-m64 (for 32-bit/64-bit code)
> plus -xarch={sparc,sparcvis,sparcvis2,sparcfmaf} spellings.
> This compiler became Sun Studio 12.
> 
> Only the assembler retains the -xarch={v8plusc,v9c}
> spelling, because we needed to maintain compatibility
> for the Solaris assembler code
> developed before the option spelling change.
> 
> This (C) is what the CR 6520539 is about.
> 
> This is also probably what the document at:
> http://developers.sun.com/sunstudio/support/Ccompare.html
> is trying to say, but got it mangled a bit.
> 
> Hope that was not too long,

No, don't worry... I even like your reply since it has some very
interesing details... :-)

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 3992797
 (;O/ \/ \O;)

Reply via email to