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: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
|
Comment about this article, ask questions, or add new information about this topic: