RS6000 to G4 assembly changes

Robert Neugebauer rneugeba at undergrad.math.uwaterloo.ca
Sun Jan 23 03:01:55 EST 2000


Thank you for the information. Most likely I won't be able to get it
working then.

Bob


On Sat, 22 Jan 2000, Gabriel Paubert wrote:

>
>
> On Sat, 22 Jan 2000, Robert Neugebauer wrote:
>
> >
> > I am not trying to build a cross compiler, I am not trying to build GCC.
> > My course at university uses its own compiler called uC++ (Micro C++).
> >
> > The compiler thus far only has the following targets that work:
> >         dmake sun-sparc-sunos
> >         dmake sun-sparc-svr4
> >         dmake sun-m68k-sunos
> >         dmake dec-ultrix-mips
> >         dmake dec-alpha
> >         dmake sgi-mips-r4000
> >         dmake sgi-mips-r3000
> >         dmake ibm-rs6000
> >         dmake hp-hppa
> >         dmake pc-i386-linux
> >         dmake gizmo
> >
> > By my knowledge rs6000 is a RISC based architecture, thus I tried to build
> > uC++ using the target ibm-rs6000. This resulted in an unrecognized opcode
> > movl during compilation.
>
> Then your compiler is seriously buggy since there is no such instruction
> in the RS6000 or PPC assembly. There significant differences between
> the architectures (for application level code) are:
>
> a) multiply and divides are different (not even the same opcode for most
> of them), the RS6000 has an MQ register for remainders and widening
> multiplies. The PPC does not have this register.
>
> b) all the extended shifts in the RS6000 which use the MQ register do not
> exist in the PPC architecture, so you have to synthesize multiword shifts
> (how to do this is documented in an appendix of the programmer's
> environment manual, see below).
>
> c) a few other oddball RS6000 instructions do not exist in the PPC:
> lscbx (that one was indeed very odd), doz, dozi, abs, nabs, rlmi, maskir,
> maskg, and I certainly forget a few more...
>
> d) the PPC has a full complement of single precision floating point
> operations, the RS6000 does not
>
> For a C compiler, a) is very important, b) affects only compilers which
> support 64 bit operations, c) the only critical instruction is abs which
> can be replaced with a simple sequence and d) can safely be ignored by
> performing all FP operations in double precision.
>
> For more information you can download the programming environments
> manuals from IBM or Motorola website:
>
> http://www.chips.ibm.com/techlib/products/powerpc/manuals/
> http://www.motorola.com/SPS/PowerPC/teksupport/teklibrary/index.html
>
> and if you are interested in improving your compiler, you might find the
> compiler writer's guide (link on IBM's website) interesting.
>
> 	Gabriel.
>


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-dev mailing list