![]() |
MKM34Z256VLx7 Bare Metal Software Drivers
R4.1.6
Reference Manual
|
This section describes arithmetic routines on signed integer data types. Use either MMAU Unsigned Integer Routines to calculate square root of a signed integer number.
| Return type | SMUL | SMULS | SMAC | SMACS | SDIV | SDIVS | Load/Read |
|---|---|---|---|---|---|---|---|
| int32 | - | - | - | - | l_sdiv_ll | l_sdivs_ll | l_srda |
| int64 | d_smul_ll d_smul_dl d_smula_l | d_smuls_dl d_smulas_l | d_smac_ll d_smac_dl d_smaca_dl | d_smacs_ll d_smacs_dl d_smacas_dl | d_sdiv_dl d_sdiva_l d_sdiv_dd d_sdiva_d | d_sdivs_dl d_sdivas_l d_sdivs_dd d_sdivas_d | d_srda |
| void | smul_ll smul_dl smula_l | smuls_dl smulas_l | smac_ll smac_dl smaca_dl | smacs_ll smacs_dl smacas_dl | sdiv_ll sdiv_dl sdiva_l sdiv_dd sdiva_d | sdivs_ll sdivs_dl sdivas_l sdivs_dd sdivas_d | slda_d |
Macros | |
| #define | slda_d(dval) |
| Load A10 accumulator register of the MMAU by 64-bit integer value. More... | |
| #define | smul_ll(lval1, lval2) |
| Multiply two 32-bit integer values. More... | |
| #define | smul_dl(dval, lval) |
| Multiply 64-bit integer value with 32-bit integer value. More... | |
| #define | smuls_dl(dval, lval) |
| Saturating multiply 64-bit integer value with 32-bit integer value. More... | |
| #define | smula_l(lval) |
| Multiply 32-bit integer value with 64-bit integer value stored in the A10 register of the MMAU. More... | |
| #define | smulas_l(lval) |
| Saturating multiply 32-bit integer value with 64-bit integer value stored in the A10 register of the MMAU. More... | |
| #define | smac_ll(lval1, lval2) |
| Multiply two 32-bit integer values and add product with value stored in the A10 register of the MMAU. More... | |
| #define | smacs_ll(lval1, lval2) |
| Saturating multiply two 32-bit integer values and add product with value stored in the A10 register of the MMAU. More... | |
| #define | smac_dl(dval, lval) |
| Multiply 64-bit integer value with 32-bit integer value and add product with value stored in the A10 register of the MMAU. More... | |
| #define | smacs_dl(dval, lval) |
| Saturating multiply 64-bit integer value with 32-bit integer value and add product with value stored in the A10 register of the MMAU. More... | |
| #define | smaca_dl(dval, lval) |
| Multiply 32-bit integer value by value stored in the A10 register of the MMAU and add product with 64-bit integer value. More... | |
| #define | smacas_dl(dval, lval) |
| Saturating multiply 32-bit integer value by value stored in the A10 register of the MMAU and add product with 64-bit integer value. More... | |
| #define | sdiv_ll(lnum, lden) |
| Divide two 32-bit integer values. More... | |
| #define | sdivs_ll(lnum, lden) |
| Divide two 32-bit integer values. More... | |
| #define | sdiv_dl(dnum, lden) |
| Divide 64-bit integer value by 32-bit integer value. More... | |
| #define | sdivs_dl(dnum, lden) |
| Divide 64-bit integer value by 32-bit integer value. More... | |
| #define | sdiv_dd(dnum, dden) |
| Divide two 64-bit integer values. More... | |
| #define | sdivs_dd(dnum, dden) |
| Divide two 64-bit integer values. More... | |
| #define | sdiva_l(lden) |
| Divide 64-bit integer value stored in the A10 register of the MMAU by 32-bit integer value. More... | |
| #define | sdivas_l(lden) |
| Divide 64-bit integer value stored in the A10 register of the MMAU by 32-bit integer value. More... | |
| #define | sdiva_d(dden) |
| Divide 64-bit integer value stored in the A10 register of the MMAU by 64-bit integer value. More... | |
| #define | sdivas_d(dden) |
| Divide 64-bit integer value stored in the A10 register of the MMAU by 64-bit integer value. More... | |
Functions | |
| static int32 | l_srda (void) |
| Read 32-bit integer value from the A0 accumulator register of the MMAU. More... | |
| static int64 | d_srda (void) |
| Read 64-bit integer value from the A10 accumulator register of the MMAU. More... | |
| static int64 | d_smul_ll (register int32 lval1, register int32 lval2) |
| Multiply two 32-bit integer values returning a 64-bit integer product. More... | |
| static int64 | d_smul_dl (register int64 dval, register int32 lval) |
| Multiply 64-bit integer value with 32-bit integer value returning a 64-bit integer product. More... | |
| static int64 | d_smuls_dl (register int64 dval, register int32 lval) |
| Saturating multiply 64-bit integer value with 32-bit integer value returning saturated 64-bit integer product. More... | |
| static int64 | d_smula_l (register int32 lval) |
| Multiply 32-bit integer value with 64-bit integer value stored in the A10 register of the MMAU returning a 64-bit integer product. More... | |
| static int64 | d_smulas_l (register int32 lval) |
| Saturating multiply 32-bit integer value with 64-bit integer value stored in the A10 register of the MMAU returning saturated 64-bit integer product. More... | |
| static int64 | d_smac_ll (register int32 lval1, register int32 lval2) |
| Multiply two 32-bit integer values and add product with value stored in the A10 register of the MMAU returning a 64-bit integer A10 register value. More... | |
| static int64 | d_smacs_ll (register int32 lval1, register int32 lval2) |
| Saturating multiply two 32-bit integer values and add product with value stored in the A10 register of the MMAU returning a 64-bit integer A10 register value. More... | |
| static int64 | d_smac_dl (register int64 dval, register int32 lval) |
| Multiply 64-bit integer value with 32-bit integer value and add product with value stored in the A10 register of the MMAU returning a 64-bit integer A10 register value. More... | |
| static int64 | d_smacs_dl (register int64 dval, register int32 lval) |
| Saturating multiply 64-bit integer value with 32-bit integer value and add product with value stored in the A10 register of the MMAU returning saturated 64-bit integer A10 register value. More... | |
| static int64 | d_smaca_dl (register int64 dval, register int32 lval) |
| Multiply 32-bit integer value by value stored in the A10 register of the MMAU and add product with 64-bit integer value returning a 64-bit integer A10 register value. More... | |
| static int64 | d_smacas_dl (register int64 dval, register int32 lval) |
| Saturating multiply 32-bit integer value by value stored in the A10 register of the MMAU and add product with 64-bit integer value returning a saturated 64-bit integer A10 register value. More... | |
| static int32 | l_sdiv_ll (register int32 lnum, register int32 lden) |
| Divide two 32-bit integer values returning a 32-bit integer quotient. More... | |
| static int32 | l_sdivs_ll (register int32 lnum, register int32 lden) |
| Divide two 32-bit integer values returning a 32-bit integer quotient. More... | |
| static int64 | d_sdiv_dl (register int64 dnum, register int32 lden) |
| Divide 64-bit integer value by 32-bit integer value returning a 64-bit integer quotient. More... | |
| static int64 | d_sdivs_dl (register int64 dnum, register int32 lden) |
| Divide 64-bit integer value by 32-bit integer value returning a 64-bit integer quotient. More... | |
| static int64 | d_sdiv_dd (register int64 dnum, register int64 dden) |
| Divide two 64-bit integer values returning a 64-bit integer quotient. More... | |
| static int64 | d_sdivs_dd (register int64 dnum, register int64 dden) |
| Divide two 64-bit integer values returning a 64-bit integer quotient. More... | |
| static int64 | d_sdiva_l (register int32 lden) |
| Divide 64-bit integer value stored in the A10 register of the MMAU by 32-bit integer value returning a 64-bit integer quotient. More... | |
| static int64 | d_sdivas_l (register int32 lden) |
| Divide 64-bit integer value stored in the A10 register of the MMAU by 32-bit integer value returning saturated 64-bit integer quotient. More... | |
| static int64 | d_sdiva_d (register int64 dden) |
| Divide 64-bit integer value stored in the A10 register of the MMAU by 64-bit integer value returning a 64-bit integer quotient. More... | |
| static int64 | d_sdivas_d (register int64 dden) |
| Divide 64-bit integer value stored in the A10 register of the MMAU by 64-bit integer value returning saturated 64-bit integer quotient. More... | |
| #define slda_d | ( | dval | ) |
| #define smul_ll | ( | lval1, | |
| lval2 | |||
| ) |
| #define smul_dl | ( | dval, | |
| lval | |||
| ) |
| #define smuls_dl | ( | dval, | |
| lval | |||
| ) |
| #define smula_l | ( | lval | ) |
| #define smulas_l | ( | lval | ) |
| #define smac_ll | ( | lval1, | |
| lval2 | |||
| ) |
| #define smacs_ll | ( | lval1, | |
| lval2 | |||
| ) |
| #define smac_dl | ( | dval, | |
| lval | |||
| ) |
| #define smacs_dl | ( | dval, | |
| lval | |||
| ) |
| #define smaca_dl | ( | dval, | |
| lval | |||
| ) |
| #define smacas_dl | ( | dval, | |
| lval | |||
| ) |
| #define sdiv_ll | ( | lnum, | |
| lden | |||
| ) |
| #define sdivs_ll | ( | lnum, | |
| lden | |||
| ) |
| #define sdiv_dl | ( | dnum, | |
| lden | |||
| ) |
| #define sdivs_dl | ( | dnum, | |
| lden | |||
| ) |
| #define sdiv_dd | ( | dnum, | |
| dden | |||
| ) |
| #define sdivs_dd | ( | dnum, | |
| dden | |||
| ) |
| #define sdiva_l | ( | lden | ) |
| #define sdivas_l | ( | lden | ) |
| #define sdiva_d | ( | dden | ) |
| #define sdivas_d | ( | dden | ) |
|
inlinestatic |
|
inlinestatic |
The d_smuls_dl function multiplies 64-bit integer value with 32-bit integer value returning saturated 64-bit integer product.
The d_smulas_l function multiplies 32-bit integer value with 64-bit integer value stored in the A10 register of the MMAU returning saturated 64-bit integer product.
| lval | int32 integer value. |
The d_smacs_ll function multiplies two 32-bit integer values and add product with value stored in the A10 register of the MMAU returning saturated 64-bit integer A10 register value.
The d_smacs_dl function multiplies 64-bit integer value with 32-bit integer value and add product with value stored in the A10 register of the MMAU returning saturated 64-bit integer A10 register value.
The d_smaca_dl function multiplies 32-bit integer value by value stored in the A10 register of the MMAU and add product with 64-bit integer value returning a 64-bit integer A10 register value.
The d_smacas_dl function multiplies 32-bit integer value by value stored in the A10 register of the MMAU and add product with 64-bit integer value returning saturated 64-bit integer A10 register value.
The l_sdivs_ll function divides two 32-bit integer values returning a 32-bit integer quotient.
The d_sdivs_dl function divides 64-bit integer value by 32-bit integer value returning a 64-bit integer quotient.
The d_sdivs_dd function divides two 64-bit integer values returning a 64-bit integer quotient.
The d_sdivas_l function divides 64-bit integer value stored in the A10 register of the MMAU by 32-bit integer value returning a saturated 64-bit integer quotient.
| lden | int32 integer value. |
The d_sdivas_d function divides 64-bit integer value stored in the A10 register of the MMAU by 64-bit integer value returning a saturated 64-bit integer quotient.
| dden | int64 integer value. |