Hardware Reference
In-Depth Information
MIPS Floating-Point Operations
Floating-point instructions manipulate the floating-point registers and indicate whether the
operation to be performed is single or double precision. The operations MOV.S and MOV.D copy
a single-precision ( MOV.S ) or double-precision ( MOV.D ) floating-point register to another register
of the same type. The operations MFC1 , MTC1 , D MFC1 , and D MTC1 move data between a single
or double floating-point register and an integer register. Conversions from integer to loating
point are also provided, and vice versa.
The floating-point operations are add, subtract, multiply, and divide; a suffix D is used for
double precision, and a suffix S is used for single precision (e.g., ADD.D , ADD.S , SUB.D , SUB.S , MUL.D ,
MUL.S , DIV.D , DIV.S ). Floating-point compares set a bit in the special floating-point status register
that can be tested with a pair of branches: BC1T and BC1F , branch floating-point true and branch
floating-point false.
To get greater performance for graphics routines, MIPS64 has instructions that perform two
32-bit floating-point operations on each half of the 64-bit floating-point register. These paired
single operations include ADD.PS , SUB.PS , MUL.PS , and DIV.PS . (They are loaded and stored using
double-precision loads and stores.)
Giving a nod toward the importance of multimedia applications, MIPS64 also includes both
integer and floating-point multiply-add instructions: MADD , MADD.S , MADD.D , and MADD.PS . The re-
gisters are all the same width in these combined operations. Figure A.26 contains a list of a
subset of MIPS64 operations and their meanings.
MIPS Instruction Set Usage
To give an idea of which instructions are popular, Figure A.27 shows the frequency of instruc-
tions and instruction classes for five SPECint2000 programs, and Figure A.28 shows the same
data for five SPECfp2000 programs.
Search WWH ::




Custom Search