Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z
faqs.org - Internet FAQ Archives

SGI apps Frequently Asked Questions (FAQ)
Section - -56- What object file formats does IRIX 6.2 support?

( Single Page )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Forum archive ]


Top Document: SGI apps Frequently Asked Questions (FAQ)
Previous Document: -55- Why don't COFF executables run on IRIX 6.1 or 6.2?
Next Document: -57- What are GP-relative and GOT overflows, and how can I fix them?
See reader questions & answers on this topic! - Help others by sharing your knowledge

  Bruce Karsh <karsh@audio.esd.sgi.com> and Ping Huang <pshuang@sgi.com>
  write: IRIX 6.2 supports
    
    6 processors:       R4000, R4400, R4600, R5000, R8000, R10000 
    3 ABIs:		-32, -n32, -64
    4 instruction sets:	mips1, mips2, mips3, mips4

  Irix 6.2 will not support R3000 (or earlier) processors.

  Instruction sets:

    mips1:  The old 32 bit R3000 instruction set.  It's mostly for
	    compatibility.  New code probably should not use it.
	    Available on all 6 processors.

    mips2:  Adds more floating point registers Adds some improvements
	    to the floating point instructions.  mips2 code may be a
	    bit smaller than mips3 code.
	    Available on all 6 processors.

    mips3:  General purpose registers are 64 bits wide.  Some new
	    instructions are added to load, store, and manipulate 64
	    bit wide quantities.
	    Available on all 6 processors.
    
    mips4:  Adds some supercomputing-style instructions.
	    Available on the R5000, R8000, and R10000.

    The mips1 and mips2 instruction sets both are available only on the
    -32 ABI.  The mips3 and mips4 instruction sets both are available
    on either the -n32 or -64 ABI, but not on the -32 ABI.

    You may mix -mips1 and -mips2 objects together to make a -mips2
    executable.  You may mix -mips3 and -mips4 objects together to make
    a -mips4 executable.  No other mixing of instruction sets is
    allowed.

  ABIs:

    -32:    Supports the 32 bit instruction sets.  This is just what we
	    are all used to from 5.3.
	    Available on all 6 processors.

    -n32:   Supports the 64 bit instruction sets, but not pointers and
	    longs all remain 32 bits long.  (long longs are 64 bits
	    wide).  The -n32 ABI is source code compatible with -32.
	    Available on all 6 processors.

    -64     Supports 64 bit instruction sets and 64 bit pointers.
	    longs and pointers are all 64 bits wide.  Great for apps
	    which need a LARGE address space.  The -64 ABI is not
	    source code compatible with -n32 and -32 since in -64 longs
	    and pointers are now 64 bit quantities.  This means that
	    casts of ints to/from pointers will not work in most cases
	    and the layout of structs will be different.
            Available on the R8000, R10000, and the IP19 (R4400) 
            processors only, due to OS restrictions.
	    ( -64 requires a large kernel).

  Summary:
  
    Format	 Function                               Processors
    ------	 --------                               ----------
    -32  -mips1  old, 32 bit, mostly for compatibility  ALL
    -32  -mips2  above plus more fp regs, faster fp	ALL
    -n32 -mips3  64 bit regs, 32 bit pointers           ALL
    -n32 -mips4  above plus supercomputer instructions  R5/8/10000
    -64  -mips3  64 bit regs, 64 bit pointers           IP19 R4400 &
                                                        R8/10000
    -64  -mips4  above plus supercomputer instructions  R8/10000

  The compiler can produce executables in all supported formats on all
  supported processors, although not all formats will *execute* on all
  processors.  The old 4.x object file format, COFF, will no longer be
  supported.  Only the newer format, ELF, will be supported.

  ftp://viz.tamu.edu/pub/sgi/software/programming/sgi_opt_level.c
  determines programmatically the highest optimization level that can
  be performed on the current CPU.

User Contributions:

Comment about this article, ask questions, or add new information about this topic:




Top Document: SGI apps Frequently Asked Questions (FAQ)
Previous Document: -55- Why don't COFF executables run on IRIX 6.1 or 6.2?
Next Document: -57- What are GP-relative and GOT overflows, and how can I fix them?

Single Page

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
sgi-faq@viz.tamu.edu (The SGI FAQ group)





Last Update March 27 2014 @ 02:12 PM