This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: porting EGCS to the Cray T3E
I wrote:
> A T3E is just a bunch of 21164 Alpha's interconnected in
> an interesting way. If the C library on the system is
> not really botched up beyond repair, it shouldn't be
> impossible to create an alphaev5-unicosmk-cray target.
> However, this is about as much as I know about this topic,
> so people with more info are kindly requested to step
> forward.
As pointed out by Martin Knoblauch <knobi@rocketmail.com>, it
should be alphaev5-cray-unicosmk, and as Julian C. Cummings
<julianc@acl.lanl.gov> pointed out, the assembly language on the
Cray is different from that on Digital Unix and the Free Unixen that
have an Alpha port. In fact, even though I only spent a few hours
on a T3E January last year - and didn't have time to dig into the
assembly language outcome of my compiles - I wouldn't be surprised [
given previous experience with products from Mr. Cray ] that
mulf $f21, $f22, $f23
should be encoded as
FX23 X21*X22
and
shl $11, $12, $13
as
BA13 A11<A12
:-)
Some more serious observations vis-a-vis the T3E (all IIRC):
1. The operating system is micro-kernel based, but it's UNICOS (the
vector computer's OS) compatible, i.e. it has a SYSV
attitude^H^H^H^H^H^Hpersonality.
2. The T3E has a single global address space. This means that any
processing element can access (read/write) the memory belonging
to any other PE; the necessary physical transfer of data is
handled by the interconnect. I think I recall (!) that the global
addressing is accomplished by encoding the PE number in the upper
bits of the address.
[ Whadusay ? Virtual memory ? Hah, I could quote Seymour
Cray's opinion on virtual memory here, but this is a decent
mailing list without explicit adult material, so I'll refrain ]
3. Last but not least, the Alpha's inside a T3E are operated in
big-endian mode. Little-endian is for peecee's (it's not called
*little*-endian for nothing).
Hope this helps,
Toon.