MKM34Z256VLx7 Bare Metal Software Drivers  R4.1.6
Reference Manual
MMAU Signed Integer Routines

Overview

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

Macro Definition Documentation

#define slda_d (   dval)

The slda_d function loads A10 accumulator register of the MMAU by 64-bit integer value.

Parameters
dvalint64 integer value.
#define smul_ll (   lval1,
  lval2 
)

The smul_ll function multiplies two 32-bit integer values.

Parameters
lval1int32 integer value.
lval2int32 integer value.
Note
Product is stored in A10 register of the MMAU for next computation.
#define smul_dl (   dval,
  lval 
)

The smul_dl function multiplies 64-bit integer value with 32-bit integer value.

Parameters
dvalint64 integer value.
lvalint32 integer value.
Note
Product is stored in A10 register of the MMAU for next computation.
#define smuls_dl (   dval,
  lval 
)

The smuls_dl function multiplies 64-bit integer value with 32-bit integer value.

Parameters
dvalint64 integer value.
lvalint32 integer value.
Note
Saturated product is stored in A10 register of the MMAU for next computation.
#define smula_l (   lval)

The smula_l function multiplies 32-bit integer value with 64-bit integer value stored in the A10 register of the MMAU.

Parameters
lvalint32 integer value.
Note
Product is stored in A10 register of the MMAU for next computation.
#define smulas_l (   lval)

The smulas_l function multiplies 32-bit integer value with 64-bit integer value stored in the A10 register of the MMAU.

Parameters
lvalint32 integer value.
Note
Saturated product is stored in A10 register of the MMAU for next computation.
#define smac_ll (   lval1,
  lval2 
)

The smac_ll function multiplies two 32-bit integer values and add product with value stored in the A10 register of the MMAU.

Parameters
lval1int32 integer value.
lval2int32 integer value.
Note
Product is stored in A10 register of the MMAU for next computation.
#define smacs_ll (   lval1,
  lval2 
)

The smacs_ll function multiplies two 32-bit integer values and add product with value stored in the A10 register of the MMAU.

Parameters
lval1int32 integer value.
lval2int32 integer value.
Note
Saturated product is stored in A10 register of the MMAU for next computation.
#define smac_dl (   dval,
  lval 
)

The smac_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.

Parameters
dvalint64 integer value.
lvalint32 integer value.
Note
Product is stored in A10 register of the MMAU for next computation.
#define smacs_dl (   dval,
  lval 
)

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

Parameters
dvalint64 integer value.
lvalint32 integer value.
Note
Saturated product is stored in A10 register of the MMAU for next computation.
#define smaca_dl (   dval,
  lval 
)

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

Parameters
dvalint64 integer value.
lvalint32 integer value.
Note
Product is stored in A10 register of the MMAU for next computation.
#define smacas_dl (   dval,
  lval 
)

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

Parameters
dvalint64 integer value.
lvalint32 integer value.
Note
Saturated product is stored in A10 register of the MMAU for next computation.
#define sdiv_ll (   lnum,
  lden 
)

The sdiv_ll function divides two 32-bit integer values.

Parameters
lnumint32 integer value.
ldenint32 integer value.
Note
Quotient is stored in A0 register of the MMAU for next computation.
#define sdivs_ll (   lnum,
  lden 
)

The sdivs_ll function divides two 32-bit integer values.

Parameters
lnumint32 integer value.
ldenint32 integer value.
Note
Saturated quotient is stored in A0 register of the MMAU for next computation.
#define sdiv_dl (   dnum,
  lden 
)

The sdiv_dl function divides 64-bit integer value by 32-bit integer value.

Parameters
dnumint64 integer value.
ldenint32 integer value.
Note
Quotient is stored in A10 register of the MMAU for next computation.
#define sdivs_dl (   dnum,
  lden 
)

The sdivs_dl function divides 64-bit integer value by 32-bit integer value.

Parameters
dnumint64 integer value.
ldenint32 integer value.
Note
Saturated quotient is stored in A10 register of the MMAU for next computation.
#define sdiv_dd (   dnum,
  dden 
)

The sdiv_dd function divides two 64-bit integer values.

Parameters
dnumint64 integer value.
ddenint64 integer value.
Note
Quotient is stored in A10 register of the MMAU for next computation.
#define sdivs_dd (   dnum,
  dden 
)

The sdivs_dd function divides two 64-bit integer values.

Parameters
dnumint64 integer value.
ddenint64 integer value.
Note
Saturated quotient is stored in A10 register of the MMAU for next computation.
#define sdiva_l (   lden)

The sdiva_l function divides 64-bit integer value stored in the A10 register of the MMAU by 32-bit integer value.

Parameters
ldenint32 integer value.
Note
Quotient is stored in A10 register of the MMAU for next computation.
#define sdivas_l (   lden)

The sdivas_l function divides 64-bit integer value stored in the A10 register of the MMAU by 32-bit integer value.

Parameters
ldenint32 integer value.
Note
Saturated quotient is stored in A10 register of the MMAU for next computation.
#define sdiva_d (   dden)

The sdiva_d function divides 64-bit integer value stored in the A10 register of the MMAU by 64-bit integer value.

Parameters
ddenint64 integer value.
Note
Quotient is stored in A10 register of the MMAU for next computation.
#define sdivas_d (   dden)

The sdivas_d function divides 64-bit integer value stored in the A10 register of the MMAU by 64-bit integer value.

Parameters
ddenint64 integer value.
Note
Saturated quotient is stored in A10 register of the MMAU for next computation.

Function Documentation

static int32 l_srda ( void  )
inlinestatic

The l_srda function reads 32-bit integer value from the A0 accumulator register of the MMAU.

Returns
int32 integer value.
static int64 d_srda ( void  )
inlinestatic

The d_srda function reads 64-bit integer value from the A10 accumulator register of the MMAU.

Returns
int64 integer value.
static int64 d_smul_ll ( register int32  lval1,
register int32  lval2 
)
inlinestatic

The d_smul_ll function multiplies two 32-bit integer values returning a 64-bit integer product.

Parameters
lval1int32 integer value.
lval2int32 integer value.
Returns
int64 integer value.
Note
Product is stored in A10 register of the MMAU for next computation.
static int64 d_smul_dl ( register int64  dval,
register int32  lval 
)
inlinestatic

The d_smul_dl function multiplies 64-bit integer value with 32-bit integer value returning a 64-bit integer product.

Parameters
dvalint64 integer value.
lvalint32 integer value.
Returns
int64 integer value.
Note
Product is stored in A10 register of the MMAU for next computation.
static int64 d_smuls_dl ( register int64  dval,
register int32  lval 
)
inlinestatic

The d_smuls_dl function multiplies 64-bit integer value with 32-bit integer value returning saturated 64-bit integer product.

Parameters
dvalint64 integer value.
lvalint32 integer value.
Returns
int64 integer value.
Note
Saturated product is stored in A10 register of the MMAU for next computation.
static int64 d_smula_l ( register int32  lval)
inlinestatic

The d_smula_l function multiplies 32-bit integer value with 64-bit integer value stored in the A10 register of the MMAU returning a 64-bit integer product.

Parameters
lvalint32 integer value.
Returns
int64 integer value.
Note
Product is stored in A10 register of the MMAU for next computation.
static int64 d_smulas_l ( register int32  lval)
inlinestatic

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.

Parameters
lvalint32 integer value.
Returns
int64 integer value.
Note
Saturated product is stored in A10 register of the MMAU for next computation.
static int64 d_smac_ll ( register int32  lval1,
register int32  lval2 
)
inlinestatic

The d_smac_ll function multiplies 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.

Parameters
lval1int32 integer value.
lval2int32 integer value.
Returns
int64 integer value.
Note
Product is stored in A10 register of the MMAU for next computation.
static int64 d_smacs_ll ( register int32  lval1,
register int32  lval2 
)
inlinestatic

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.

Parameters
lval1int32 integer value.
lval2int32 integer value.
Returns
int64 integer value.
Note
Saturated product is stored in A10 register of the MMAU for next computation.
static int64 d_smac_dl ( register int64  dval,
register int32  lval 
)
inlinestatic

The d_smac_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 a 64-bit integer A10 register value.

Parameters
dvalint64 integer value.
lvalint32 integer value.
Returns
int64 integer value.
Note
Product is stored in A10 register of the MMAU for next computation.
static int64 d_smacs_dl ( register int64  dval,
register int32  lval 
)
inlinestatic

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.

Parameters
dvalint64 integer value.
lvalint32 integer value.
Returns
int64 integer value.
Note
Saturated product is stored in A10 register of the MMAU for next computation.
static int64 d_smaca_dl ( register int64  dval,
register int32  lval 
)
inlinestatic

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.

Parameters
dvalint64 integer value.
lvalint32 integer value.
Returns
int64 integer value.
Note
Product is stored in A10 register of the MMAU for next computation.
static int64 d_smacas_dl ( register int64  dval,
register int32  lval 
)
inlinestatic

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.

Parameters
dvalint64 integer value.
lvalint32 integer value.
Returns
int64 integer value.
Note
Saturated product is stored in A10 register of the MMAU for next computation.
static int32 l_sdiv_ll ( register int32  lnum,
register int32  lden 
)
inlinestatic

The l_sdiv_ll function divides two 32-bit integer values returning a 32-bit integer quotient.

Parameters
lnumint32 integer value.
ldenint32 integer value.
Returns
int32 integer value.
Note
Quotient is stored in A0 register of the MMAU for next computation.
static int32 l_sdivs_ll ( register int32  lnum,
register int32  lden 
)
inlinestatic

The l_sdivs_ll function divides two 32-bit integer values returning a 32-bit integer quotient.

Parameters
lnumint32 integer value.
ldenint32 integer value.
Returns
int32 integer value.
Note
Saturated quotient is stored in A0 register of the MMAU for next computation.
static int64 d_sdiv_dl ( register int64  dnum,
register int32  lden 
)
inlinestatic

The d_sdiv_dl function divides 64-bit integer value by 32-bit integer value returning a 64-bit integer quotient.

Parameters
dnumint64 integer value.
ldenint32 integer value.
Returns
int64 integer value.
Note
Quotient is stored in A10 register of the MMAU for next computation.
static int64 d_sdivs_dl ( register int64  dnum,
register int32  lden 
)
inlinestatic

The d_sdivs_dl function divides 64-bit integer value by 32-bit integer value returning a 64-bit integer quotient.

Parameters
dnumint64 integer value.
ldenint32 integer value.
Returns
int64 integer value.
Note
Saturated quotient is stored in A10 register of the MMAU for next computation.
static int64 d_sdiv_dd ( register int64  dnum,
register int64  dden 
)
inlinestatic

The d_sdiv_dd function divides two 64-bit integer values returning a 64-bit integer quotient.

Parameters
dnumint64 integer value.
ddenint64 integer value.
Returns
int64 integer value.
Note
Quotient is stored in A10 register of the MMAU for next computation.
static int64 d_sdivs_dd ( register int64  dnum,
register int64  dden 
)
inlinestatic

The d_sdivs_dd function divides two 64-bit integer values returning a 64-bit integer quotient.

Parameters
dnumint64 integer value.
ddenint64 integer value.
Returns
int64 integer value.
Note
Saturated quotient is stored in A10 register of the MMAU for next computation.
static int64 d_sdiva_l ( register int32  lden)
inlinestatic

The d_sdiva_l function divides 64-bit integer value stored in the A10 register of the MMAU by 32-bit integer value returning a 64-bit integer quotient.

Parameters
ldenint32 integer value.
Returns
int64 integer value.
Note
Quotient is stored in A10 register of the MMAU for next computation.
static int64 d_sdivas_l ( register int32  lden)
inlinestatic

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.

Parameters
ldenint32 integer value.
Returns
int64 integer value.
Note
Saturated quotient is stored in A10 register of the MMAU for next computation.
static int64 d_sdiva_d ( register int64  dden)
inlinestatic

The d_sdiva_d function divides 64-bit integer value stored in the A10 register of the MMAU by 64-bit integer value returning a 64-bit integer quotient.

Parameters
ddenint64 integer value.
Returns
int64 integer value.
Note
Quotient is stored in A10 register of the MMAU for next computation.
static int64 d_sdivas_d ( register int64  dden)
inlinestatic

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.

Parameters
ddenint64 integer value.
Returns
int64 integer value.
Note
Saturated quotient is stored in A10 register of the MMAU for next computation.