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. ".