Revision 1.0
VU Add Instructions
69
•
I
is a signed 16-bit integer.
•
F
is an unsigned 16-bit fraction.
•
IF
is a 32-bit number, with the signed upper 16 bits contained in
one register, and the unsigned lower 16 bits contained in a second
register.
•
_int
is a named vector register holding a signed 16 bit number.
•
_frac
is a named vector register holding an unsigned 16 bit
fraction.
•
dev_null
is a named vector register containing all zeros.
This code demonstrates a double-precision add:
vaddc res_frac, s_frac, t_frac
vadd res_int, s_int, t_int
This code demonstrates a double-precision subtract:
vsubc res_frac, s_frac, t_frac
vsub res_int, s_int, t_int
This code demonstrates reading the accumulator using
vsar
, following a
multiply:
vmadh res_int, s_int, t_int
vsar res_int, s_int, t_int[0]
vsar res_frac, s_frac, t_frac[1]
Other combinations are left as an exercise to the reader.
Summary of Contents for Ultra64
Page 2: ...2 ...
Page 10: ...10 ...
Page 12: ...12 Figure 6 2 buildtask Operation 137 ...
Page 14: ...14 ...
Page 80: ...80 Vector Unit Instructions vmadm dres_int dres_int vconst 3 vmadn dres_frac vconst vconst 0 ...
Page 104: ...104 RSP Coprocessor 0 ...
Page 150: ...150 Advanced Information ...
Page 155: ...Revision 1 0 155 ...
Page 248: ...248 Exceptions None ...
Page 251: ...Revision 1 0 251 Exceptions None ...
Page 254: ...254 Exceptions None ...
Page 257: ...Revision 1 0 257 Exceptions None ...
Page 293: ...Revision 1 0 293 Exceptions None ...
Page 316: ...316 Exceptions None ...