SPA 5.0:
{@{!}Pg}
RRO.mode
Rd,{-}{|}Sb{|}
{&req_6}
{?sched}
;
.mode: { .SINCOS, .EX2 }
.mode controls SIN/COS or EX2 encoding:
SINCOS(0): for SIN or COS
EX2(1): for EX2.
The following source Sb is allowed:
Sb(register)
Sb(constant with immediate address)
Sb(#IMM20<<12)
Denorm input Sb is flushed to sign preserving 0.0. The source has optional neg/abs.
Range reduction operator.
RRO must be called to reduce the range and encode the source value before calling MUFU.SIN/MUFU.COS or MUFU.EX2. Input for SIN/COS is in radians.
SIN/COS Destination encoding:
S:U01 | 0 | UNUSED:U05 | Quadrant:U02 | Fraction:U23 (of quadrant) | |
S:U01 | 1 | UNUSED:U05 | 00:NaN | UNUSED:U23 | |
S:U01 | 1 | UNUSED:U05 | 01:Inf | UNUSED:U23 |
EX2:
S:U01 | 0 | Integer:U07 | Fraction:U23 (of integer) | |
S:U01 | 1 | UNUSED:U05 | 00:NaN | UNUSED:U23 |
S:U01 | 1 | UNUSED:U05 | 01:Inf | UNUSED:U23 |
RRO.EX2 R0, R1; RRO.SINCOS R1, -c[3][4560];