Intrinsics to set, get and clear bits of the status register.
More...
Intrinsics to set, get and clear bits of the status register.
Lower 32 bit MC0:
Field | Bits | Meaning |
C - Carry | [0] | ALU overflow carry bit |
SS0_TLAST - TLAST | [1] | Reading narrow input stream (SS0) returned TLAST condition |
SS1_TLAST - TLAST | [2] | Reading narrow input stream (SS1) returned TLAST condition |
WSS0_TLAST - TLAST | [3] | Reading wide input stream (WSS0) returned TLAST condition |
WSS1_TLAST - TLAST | [4] | Reading wide input stream (WSS1) returned TLAST condition |
SS0_NB_SC - Non blocking | [5] | Reading a narrow input stream (SS0) returned a non blocking SUCCESS condition |
SS1_NB_SC - Non blocking | [6] | Reading a narrow input stream (SS1) returned a non blocking SUCCESS condition |
MS0_NB_SC - Non blocking | [7] | Reading a narrow output stream (MS0) returned a non blocking SUCCESS condition |
MS1_NB_SC - Non blocking | [8] | Reading a narrow output stream (MS1) returned a non blocking SUCCESS condition |
SRS_SAT - Saturation | [9] | Saturation in SRS for all lanes |
UPS_SAT - Saturation | [10] | Saturation in UPS for all lanes |
Reserved | [11:15] | Reserved bits |
FP_ADD- Exceptions | [16:23] | Floating point exceptions for floating point adds |
FP_MUL- Exceptions | [24:31] | Floating point exceptions for floating point muls |
Higher 32 bit MC1:
Field | Bits | Meaning |
FP_NLF - Exceptions | [0:7] | Floating point exceptions for datatype converts |
FP_FIX2FLOAT - Exceptions | [8:15] | Floating point exceptions for datatype converts |
FP_FLOAT2FIX - Exceptions | [16:23] | Floating point exceptions for datatype converts |
Reserved | [24:31] | Reserved bits |
Floating point flags
There are 8 exception bits per floating point functional unit.
Name | value | Comments |
zero | 0 | Integer or floating point output is zero |
inf | 1 | Floating point output is infinity |
inv | 2 | Invalid floating point operation (NaN input also causes this) |
tiny | 3 | Floating point output after rounding has a magnitude less than minimum normalized number and is not exact zero |
huge | 4 | Result after rounding has magnitude greater than maximum normalized number |
inex | 5 | Integer/floating point output is not equal to the infinitely precise result |
HugeInt | 6 | Integer result greater than largest representable two's complement integer with same sign |
div0 | 7 | Divide by zero |
|
Get or set the low or high MC register Parameter can be 0 or 1 and specifies the 32bit word to be accessed. 0 is lower 32 bit and 1 is higher 32 bit. See: Bit meanings for what each bit means.
|
unsigned int | get_MC (unsigned int idx) |
|
void | set_MC (unsigned int val, unsigned int idx) |
|
|
unsigned int | get_srs_sat () |
| Get "srs saturation. " For existing flags see here.
|
|
void | set_srs_sat () |
| Set "srs saturation. " For existing flags see here.
|
|
void | clr_srs_sat () |
| Clear "srs saturation. " For existing flags see here.
|
|
unsigned int | get_ups_sat () |
| Get "upshift saturation. " For existing flags see here.
|
|
void | set_ups_sat () |
| Set "upshift saturation. " For existing flags see here.
|
|
void | clr_ups_sat () |
| Clear "upshift saturation. " For existing flags see here.
|
|
|
Reading a narrow input stream(SS0/SS1) or wide input stream(WSS0/WSS1) returned a TLAST condition.
|
unsigned int | get_ss0_tlast () |
| Get "narrow stream 0 tlast flag. ".
|
|
void | set_ss0_tlast () |
| Set "narrow stream 0 tlast flag. ".
|
|
void | clr_ss0_tlast () |
| Clear "narrow stream 0 tlast flag. ".
|
|
unsigned int | get_ss1_tlast () |
| Get "narrow stream 1 tlast flag. ".
|
|
void | set_ss1_tlast () |
| Set "narrow stream 1 tlast flag. ".
|
|
void | clr_ss1_tlast () |
| Clear "narrow stream 1 tlast flag. ".
|
|
unsigned int | get_wss0_tlast () |
| Get "wide stream 0 tlast flag. ".
|
|
void | set_wss0_tlast () |
| Set "wide stream 0 tlast flag. ".
|
|
void | clr_wss0_tlast () |
| Clear "wide stream 0 tlast flag. ".
|
|
unsigned int | get_wss1_tlast () |
| Get "wide stream 1 tlast flag. ".
|
|
void | set_wss1_tlast () |
| Set "wide stream 1 tlast flag. ".
|
|
void | clr_wss1_tlast () |
| Clear "wide stream 1 tlast flag. ".
|
|
|
Floating point exceptions for floating point vector adds. See also: flags.
|
unsigned int | get_fpadd_zero () |
| Get "floating point addition zero flag. " For existing flags see here.
|
|
void | set_fpadd_zero () |
| Set "floating point addition zero flag. " For existing flags see here.
|
|
void | clr_fpadd_zero () |
| Clear "floating point addition zero flag. " For existing flags see here.
|
|
unsigned int | get_fpadd_inf () |
| Get "floating point addition infinite flag. " For existing flags see here.
|
|
void | set_fpadd_inf () |
| Set "floating point addition infinite flag. " For existing flags see here.
|
|
void | clr_fpadd_inf () |
| Clear "floating point addition infinite flag. " For existing flags see here.
|
|
unsigned int | get_fpadd_inv () |
| Get "floating point addition invalid flag. " For existing flags see here.
|
|
void | set_fpadd_inv () |
| Set "floating point addition invalid flag. " For existing flags see here.
|
|
void | clr_fpadd_inv () |
| Clear "floating point addition invalid flag. " For existing flags see here.
|
|
unsigned int | get_fpadd_tiny () |
| Get "floating point addition tiny flag. " For existing flags see here.
|
|
void | set_fpadd_tiny () |
| Set "floating point addition tiny flag. " For existing flags see here.
|
|
void | clr_fpadd_tiny () |
| Clear "floating point addition tiny flag. " For existing flags see here.
|
|
unsigned int | get_fpadd_huge () |
| Get "floating point addition huge flag. " For existing flags see here.
|
|
void | set_fpadd_huge () |
| Set "floating point addition huge flag. " For existing flags see here.
|
|
void | clr_fpadd_huge () |
| Clear "floating point addition huge flag. " For existing flags see here.
|
|
unsigned int | get_fpadd_inex () |
| Get "floating point addition inexact flag. " For existing flags see here.
|
|
void | set_fpadd_inex () |
| Set "floating point addition inexact flag. " For existing flags see here.
|
|
void | clr_fpadd_inex () |
| Clear "floating point addition inexact flag. " For existing flags see here.
|
|
|
Floating point exceptions for floating point vector muls. See also: flags.
|
unsigned int | get_fpmul_zero () |
| Get "floating point multiplication zero flag. " For existing flags see here.
|
|
void | set_fpmul_zero () |
| Set "floating point multiplication zero flag. " For existing flags see here.
|
|
void | clr_fpmul_zero () |
| Clear "floating point multiplication zero flag. " For existing flags see here.
|
|
unsigned int | get_fpmul_inf () |
| Get "floating point multiplication infinite flag. " For existing flags see here.
|
|
void | set_fpmul_inf () |
| Set "floating point multiplication infinite flag. " For existing flags see here.
|
|
void | clr_fpmul_inf () |
| Clear "floating point multiplication infinite flag. " For existing flags see here.
|
|
unsigned int | get_fpmul_inv () |
| Get "floating point multiplication invalid flag. " For existing flags see here.
|
|
void | set_fpmul_inv () |
| Set "floating point multiplication invalid flag. " For existing flags see here.
|
|
void | clr_fpmul_inv () |
| Clear "floating point multiplication invalid flag. " For existing flags see here.
|
|
unsigned int | get_fpmul_tiny () |
| Get "floating point multiplication tiny flag. " For existing flags see here.
|
|
void | set_fpmul_tiny () |
| Set "floating point multiplication tiny flag. " For existing flags see here.
|
|
void | clr_fpmul_tiny () |
| Clear "floating point multiplication tiny flag. " For existing flags see here.
|
|
unsigned int | get_fpmul_huge () |
| Get "floating point multiplication huge flag. " For existing flags see here.
|
|
void | set_fpmul_huge () |
| Set "floating point multiplication huge flag. " For existing flags see here.
|
|
void | clr_fpmul_huge () |
| Clear "floating point multiplication huge flag. " For existing flags see here.
|
|
unsigned int | get_fpmul_inex () |
| Get "floating point multiplication inexact flag. " For existing flags see here.
|
|
void | set_fpmul_inex () |
| Set "floating point multiplication inexact flag. " For existing flags see here.
|
|
void | clr_fpmul_inex () |
| Clear "floating point multiplication inexact flag. " For existing flags see here.
|
|
|
Floating point exceptions for floating point inv_sqrt, sqrt and inverse operations. See also: flags.
|
unsigned int | get_fpnlf_zero () |
| Get "non linear function zero flag. " For existing flags see here.
|
|
void | set_fpnlf_zero () |
| Set "non linear function zero flag. " For existing flags see here.
|
|
void | clr_fpnlf_zero () |
| Clear "non linear function zero flag. " For existing flags see here.
|
|
unsigned int | get_fpnlf_inf () |
| Get "non linear function infinite flag. " For existing flags see here.
|
|
void | set_fpnlf_inf () |
| Set "non linear function infinite flag. " For existing flags see here.
|
|
void | clr_fpnlf_inf () |
| Clear "non linear function infinite flag. " For existing flags see here.
|
|
unsigned int | get_fpnlf_inv () |
| Get "non linear function invalid flag. " For existing flags see here.
|
|
void | set_fpnlf_inv () |
| Set "non linear function invalid flag. " For existing flags see here.
|
|
void | clr_fpnlf_inv () |
| Clear "non linear function invalid flag. " For existing flags see here.
|
|
unsigned int | get_fpnlf_tiny () |
| Get "non linear function tiny flag. " For existing flags see here.
|
|
void | set_fpnlf_tiny () |
| Set "non linear function tiny flag. " For existing flags see here.
|
|
void | clr_fpnlf_tiny () |
| Clear "non linear function tiny flag. " For existing flags see here.
|
|
unsigned int | get_fpnlf_inex () |
| Get "non linear function inexact flag. " For existing flags see here.
|
|
void | set_fpnlf_inex () |
| Set "non linear function inexact flag. " For existing flags see here.
|
|
void | clr_fpnlf_inex () |
| Clear "non linear function inexact flag. " For existing flags see here.
|
|
unsigned int | get_fpnlf_div0 () |
| Get "non linear function division by zero flag. " For existing flags see here.
|
|
void | set_fpnlf_div0 () |
| Set "non linear function division by zero flag. " For existing flags see here.
|
|
void | clr_fpnlf_div0 () |
| Clear "non linear function division by zero flag. " For existing flags see here.
|
|
|
Floating point exceptions for datatype converts. See also: flags.
|
unsigned int | get_fx2fl_zero () |
| Get "fix to float zero flag. " For existing flags see here.
|
|
void | set_fx2fl_zero () |
| Set "fix to float zero flag. " For existing flags see here.
|
|
void | clr_fx2fl_zero () |
| Clear "fix to float zero flag. " For existing flags see here.
|
|
unsigned int | get_fx2fl_inex () |
| Get "fix to float inexact flag. " For existing flags see here.
|
|
void | set_fx2fl_inex () |
| Set "fix to float inexact flag. " For existing flags see here.
|
|
void | clr_fx2fl_inex () |
| Clear "fix to float inexact flag. " For existing flags see here.
|
|
|
Floating point exceptions for datatpye converts. See also: flags.
|
unsigned int | get_fl2fx_hint () |
| Get "float to fix huge int flag. " For existing flags see here.
|
|
void | set_fl2fx_hint () |
| Set "float to fix huge int flag. " For existing flags see here.
|
|
void | clr_fl2fx_hint () |
| Clear "float to fix huge int flag. " For existing flags see here.
|
|
unsigned int | get_fl2fx_inv () |
| Get "float to fix invalid flag. " For existing flags see here.
|
|
void | set_fl2fx_inv () |
| Set "float to fix invalid flag. " For existing flags see here.
|
|
void | clr_fl2fx_inv () |
| Clear "float to fix invalid flag. " For existing flags see here.
|
|
Clear "float to fix huge int flag. " For existing flags see here.
Clear "float to fix invalid flag. " For existing flags see here.
Clear "floating point addition huge flag. " For existing flags see here.
Clear "floating point addition inexact flag. " For existing flags see here.
Clear "floating point addition infinite flag. " For existing flags see here.
Clear "floating point addition invalid flag. " For existing flags see here.
Clear "floating point addition tiny flag. " For existing flags see here.
Clear "floating point addition zero flag. " For existing flags see here.
Clear "floating point multiplication huge flag. " For existing flags see here.
Clear "floating point multiplication inexact flag. " For existing flags see here.
Clear "floating point multiplication infinite flag. " For existing flags see here.
Clear "floating point multiplication invalid flag. " For existing flags see here.
Clear "floating point multiplication tiny flag. " For existing flags see here.
Clear "floating point multiplication zero flag. " For existing flags see here.
Clear "non linear function division by zero flag. " For existing flags see here.
Clear "non linear function inexact flag. " For existing flags see here.
Clear "non linear function infinite flag. " For existing flags see here.
Clear "non linear function invalid flag. " For existing flags see here.
Clear "non linear function tiny flag. " For existing flags see here.
Clear "non linear function zero flag. " For existing flags see here.
Clear "fix to float inexact flag. " For existing flags see here.
Clear "fix to float zero flag. " For existing flags see here.
Clear "wide stream 0 success flag. ".
Clear "wide stream 1 success flag. ".
Clear "srs saturation. " For existing flags see here.
Clear "narrow stream 0 success flag. ".
Clear "narrow stream 0 tlast flag. ".
Clear "narrow stream 1 success flag. ".
Clear "narrow stream 1 tlast flag. ".
Clear "upshift saturation. " For existing flags see here.
Clear "wide stream 0 tlast flag. ".
Clear "wide stream 1 tlast flag. ".
unsigned int get_fl2fx_hint |
( |
| ) |
|
Get "float to fix huge int flag. " For existing flags see here.
unsigned int get_fl2fx_inv |
( |
| ) |
|
Get "float to fix invalid flag. " For existing flags see here.
unsigned int get_fpadd_huge |
( |
| ) |
|
Get "floating point addition huge flag. " For existing flags see here.
unsigned int get_fpadd_inex |
( |
| ) |
|
Get "floating point addition inexact flag. " For existing flags see here.
unsigned int get_fpadd_inf |
( |
| ) |
|
Get "floating point addition infinite flag. " For existing flags see here.
unsigned int get_fpadd_inv |
( |
| ) |
|
Get "floating point addition invalid flag. " For existing flags see here.
unsigned int get_fpadd_tiny |
( |
| ) |
|
Get "floating point addition tiny flag. " For existing flags see here.
unsigned int get_fpadd_zero |
( |
| ) |
|
Get "floating point addition zero flag. " For existing flags see here.
unsigned int get_fpmul_huge |
( |
| ) |
|
Get "floating point multiplication huge flag. " For existing flags see here.
unsigned int get_fpmul_inex |
( |
| ) |
|
Get "floating point multiplication inexact flag. " For existing flags see here.
unsigned int get_fpmul_inf |
( |
| ) |
|
Get "floating point multiplication infinite flag. " For existing flags see here.
unsigned int get_fpmul_inv |
( |
| ) |
|
Get "floating point multiplication invalid flag. " For existing flags see here.
unsigned int get_fpmul_tiny |
( |
| ) |
|
Get "floating point multiplication tiny flag. " For existing flags see here.
unsigned int get_fpmul_zero |
( |
| ) |
|
Get "floating point multiplication zero flag. " For existing flags see here.
unsigned int get_fpnlf_div0 |
( |
| ) |
|
Get "non linear function division by zero flag. " For existing flags see here.
unsigned int get_fpnlf_inex |
( |
| ) |
|
Get "non linear function inexact flag. " For existing flags see here.
unsigned int get_fpnlf_inf |
( |
| ) |
|
Get "non linear function infinite flag. " For existing flags see here.
unsigned int get_fpnlf_inv |
( |
| ) |
|
Get "non linear function invalid flag. " For existing flags see here.
unsigned int get_fpnlf_tiny |
( |
| ) |
|
Get "non linear function tiny flag. " For existing flags see here.
unsigned int get_fpnlf_zero |
( |
| ) |
|
Get "non linear function zero flag. " For existing flags see here.
unsigned int get_fx2fl_inex |
( |
| ) |
|
Get "fix to float inexact flag. " For existing flags see here.
unsigned int get_fx2fl_zero |
( |
| ) |
|
Get "fix to float zero flag. " For existing flags see here.
unsigned int get_MC |
( |
unsigned int |
idx | ) |
|
unsigned int get_ms0_success |
( |
| ) |
|
Get "wide stream 0 success flag. ".
unsigned int get_ms1_success |
( |
| ) |
|
Get "wide stream 1 success flag. ".
unsigned int get_srs_sat |
( |
| ) |
|
Get "srs saturation. " For existing flags see here.
unsigned int get_ss0_success |
( |
| ) |
|
Get "narrow stream 0 success flag. ".
unsigned int get_ss0_tlast |
( |
| ) |
|
Get "narrow stream 0 tlast flag. ".
unsigned int get_ss1_success |
( |
| ) |
|
Get "narrow stream 1 success flag. ".
unsigned int get_ss1_tlast |
( |
| ) |
|
Get "narrow stream 1 tlast flag. ".
unsigned int get_ups_sat |
( |
| ) |
|
Get "upshift saturation. " For existing flags see here.
unsigned int get_wss0_tlast |
( |
| ) |
|
Get "wide stream 0 tlast flag. ".
unsigned int get_wss1_tlast |
( |
| ) |
|
Get "wide stream 1 tlast flag. ".
Set "float to fix huge int flag. " For existing flags see here.
Set "float to fix invalid flag. " For existing flags see here.
Set "floating point addition huge flag. " For existing flags see here.
Set "floating point addition inexact flag. " For existing flags see here.
Set "floating point addition infinite flag. " For existing flags see here.
Set "floating point addition invalid flag. " For existing flags see here.
Set "floating point addition tiny flag. " For existing flags see here.
Set "floating point addition zero flag. " For existing flags see here.
Set "floating point multiplication huge flag. " For existing flags see here.
Set "floating point multiplication inexact flag. " For existing flags see here.
Set "floating point multiplication infinite flag. " For existing flags see here.
Set "floating point multiplication invalid flag. " For existing flags see here.
Set "floating point multiplication tiny flag. " For existing flags see here.
Set "floating point multiplication zero flag. " For existing flags see here.
Set "non linear function division by zero flag. " For existing flags see here.
Set "non linear function inexact flag. " For existing flags see here.
Set "non linear function infinite flag. " For existing flags see here.
Set "non linear function invalid flag. " For existing flags see here.
Set "non linear function tiny flag. " For existing flags see here.
Set "non linear function zero flag. " For existing flags see here.
Set "fix to float inexact flag. " For existing flags see here.
Set "fix to float zero flag. " For existing flags see here.
void set_MC |
( |
unsigned int |
val, |
|
|
unsigned int |
idx |
|
) |
| |
Set "wide stream 0 success flag. ".
Set "wide stream 1 success flag. ".
Set "srs saturation. " For existing flags see here.
Set "narrow stream 0 success flag. ".
Set "narrow stream 0 tlast flag. ".
Set "narrow stream 1 success flag. ".
Set "narrow stream 1 tlast flag. ".
Set "upshift saturation. " For existing flags see here.
Set "wide stream 0 tlast flag. ".
Set "wide stream 1 tlast flag. ".