webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Macros | Variables
fixed_debug.h File Reference

Fixed-point operations with debugging. More...

#include <stdio.h>
#include "opus_defines.h"

Go to the source code of this file.

Macros

#define MULT16_16SU(a, b)   ((opus_val32)(opus_val16)(a)*(opus_val32)(opus_uint16)(b))
 
#define MULT32_32_Q31(a, b)   ADD32(ADD32(SHL32(MULT16_16(SHR32((a),16),SHR((b),16)),1), SHR32(MULT16_16SU(SHR32((a),16),((b)&0x0000ffff)),15)), SHR32(MULT16_16SU(SHR32((b),16),((a)&0x0000ffff)),15))
 
#define MULT16_32_Q16(a, b)   ADD32(MULT16_16((a),SHR32((b),16)), SHR32(MULT16_16SU((a),((b)&0x0000ffff)),16))
 
#define MULT16_32_P16(a, b)   MULT16_32_PX(a,b,16)
 
#define QCONST16(x, bits)   ((opus_val16)(.5+(x)*(((opus_val32)1)<<(bits))))
 
#define QCONST32(x, bits)   ((opus_val32)(.5+(x)*(((opus_val32)1)<<(bits))))
 
#define VERIFY_SHORT(x)   ((x)<=32767&&(x)>=-32768)
 
#define VERIFY_INT(x)   ((x)<=2147483647LL&&(x)>=-2147483648LL)
 
#define VERIFY_UINT(x)   ((x)<=(2147483647LLU<<1))
 
#define SHR(a, b)   SHR32(a,b)
 
#define PSHR(a, b)   PSHR32(a,b)
 
#define EXTRACT16(x)   EXTRACT16_(x, __FILE__, __LINE__)
 
#define EXTEND32(x)   EXTEND32_(x, __FILE__, __LINE__)
 
#define SHR16(a, shift)   SHR16_(a, shift, __FILE__, __LINE__)
 
#define SHL16(a, shift)   SHL16_(a, shift, __FILE__, __LINE__)
 
#define SHL32(a, shift)   SHL32_(a, shift, __FILE__, __LINE__)
 
#define PSHR32(a, shift)   (celt_mips--,SHR32(ADD32((a),(((opus_val32)(1)<<((shift))>>1))),shift))
 
#define VSHR32(a, shift)   (((shift)>0) ? SHR32(a, shift) : SHL32(a, -(shift)))
 
#define ROUND16(x, a)   (celt_mips--,EXTRACT16(PSHR32((x),(a))))
 
#define HALF16(x)   (SHR16(x,1))
 
#define HALF32(x)   (SHR32(x,1))
 
#define ADD16(a, b)   ADD16_(a, b, __FILE__, __LINE__)
 
#define SUB16(a, b)   SUB16_(a, b, __FILE__, __LINE__)
 
#define ADD32(a, b)   ADD32_(a, b, __FILE__, __LINE__)
 
#define SUB32(a, b)   SUB32_(a, b, __FILE__, __LINE__)
 
#define UADD32(a, b)   UADD32_(a, b, __FILE__, __LINE__)
 
#define USUB32(a, b)   USUB32_(a, b, __FILE__, __LINE__)
 
#define MULT16_16(a, b)   MULT16_16_(a, b, __FILE__, __LINE__)
 
#define MAC16_16(c, a, b)   (celt_mips-=2,ADD32((c),MULT16_16((a),(b))))
 
#define MULT16_32_QX(a, b, Q)   MULT16_32_QX_(a, b, Q, __FILE__, __LINE__)
 
#define MULT16_32_PX(a, b, Q)   MULT16_32_PX_(a, b, Q, __FILE__, __LINE__)
 
#define MULT16_32_Q15(a, b)   MULT16_32_QX(a,b,15)
 
#define MAC16_32_Q15(c, a, b)   (celt_mips-=2,ADD32((c),MULT16_32_Q15((a),(b))))
 
#define MAC16_32_Q16(c, a, b)   (celt_mips-=2,ADD32((c),MULT16_32_Q16((a),(b))))
 
#define MULT16_16_Q15(a, b)   MULT16_16_Q15_(a, b, __FILE__, __LINE__)
 
#define DIV32_16(a, b)   DIV32_16_(a, b, __FILE__, __LINE__)
 
#define DIV32(a, b)   DIV32_(a, b, __FILE__, __LINE__)
 
#define SIG2WORD16(x)   (SIG2WORD16_generic(x))
 
#define PRINT_MIPS(file)   do {fprintf (file, "total complexity = %llu MIPS\n", celt_mips);} while (0);
 

Variables

opus_int64 celt_mips
 

Detailed Description

Fixed-point operations with debugging.

Macro Definition Documentation

◆ ADD16

#define ADD16 (   a,
  b 
)    ADD16_(a, b, __FILE__, __LINE__)

◆ ADD32

#define ADD32 (   a,
  b 
)    ADD32_(a, b, __FILE__, __LINE__)

◆ DIV32

#define DIV32 (   a,
  b 
)    DIV32_(a, b, __FILE__, __LINE__)

◆ DIV32_16

#define DIV32_16 (   a,
  b 
)    DIV32_16_(a, b, __FILE__, __LINE__)

◆ EXTEND32

#define EXTEND32 (   x)    EXTEND32_(x, __FILE__, __LINE__)

◆ EXTRACT16

#define EXTRACT16 (   x)    EXTRACT16_(x, __FILE__, __LINE__)

◆ HALF16

#define HALF16 (   x)    (SHR16(x,1))

◆ HALF32

#define HALF32 (   x)    (SHR32(x,1))

◆ MAC16_16

#define MAC16_16 (   c,
  a,
  b 
)    (celt_mips-=2,ADD32((c),MULT16_16((a),(b))))

◆ MAC16_32_Q15

#define MAC16_32_Q15 (   c,
  a,
  b 
)    (celt_mips-=2,ADD32((c),MULT16_32_Q15((a),(b))))

◆ MAC16_32_Q16

#define MAC16_32_Q16 (   c,
  a,
  b 
)    (celt_mips-=2,ADD32((c),MULT16_32_Q16((a),(b))))

◆ MULT16_16

#define MULT16_16 (   a,
  b 
)    MULT16_16_(a, b, __FILE__, __LINE__)

◆ MULT16_16_Q15

#define MULT16_16_Q15 (   a,
  b 
)    MULT16_16_Q15_(a, b, __FILE__, __LINE__)

◆ MULT16_16SU

#define MULT16_16SU (   a,
  b 
)    ((opus_val32)(opus_val16)(a)*(opus_val32)(opus_uint16)(b))

◆ MULT16_32_P16

#define MULT16_32_P16 (   a,
  b 
)    MULT16_32_PX(a,b,16)

◆ MULT16_32_PX

#define MULT16_32_PX (   a,
  b,
 
)    MULT16_32_PX_(a, b, Q, __FILE__, __LINE__)

◆ MULT16_32_Q15

#define MULT16_32_Q15 (   a,
  b 
)    MULT16_32_QX(a,b,15)

◆ MULT16_32_Q16

#define MULT16_32_Q16 (   a,
  b 
)    ADD32(MULT16_16((a),SHR32((b),16)), SHR32(MULT16_16SU((a),((b)&0x0000ffff)),16))

16x32 multiplication, followed by a 16-bit shift right. Results fits in 32 bits

◆ MULT16_32_QX

#define MULT16_32_QX (   a,
  b,
 
)    MULT16_32_QX_(a, b, Q, __FILE__, __LINE__)

◆ MULT32_32_Q31

#define MULT32_32_Q31 (   a,
  b 
)    ADD32(ADD32(SHL32(MULT16_16(SHR32((a),16),SHR((b),16)),1), SHR32(MULT16_16SU(SHR32((a),16),((b)&0x0000ffff)),15)), SHR32(MULT16_16SU(SHR32((b),16),((a)&0x0000ffff)),15))

◆ PRINT_MIPS

#define PRINT_MIPS (   file)    do {fprintf (file, "total complexity = %llu MIPS\n", celt_mips);} while (0);

◆ PSHR

#define PSHR (   a,
  b 
)    PSHR32(a,b)

◆ PSHR32

#define PSHR32 (   a,
  shift 
)    (celt_mips--,SHR32(ADD32((a),(((opus_val32)(1)<<((shift))>>1))),shift))

◆ QCONST16

#define QCONST16 (   x,
  bits 
)    ((opus_val16)(.5+(x)*(((opus_val32)1)<<(bits))))

◆ QCONST32

#define QCONST32 (   x,
  bits 
)    ((opus_val32)(.5+(x)*(((opus_val32)1)<<(bits))))

◆ ROUND16

#define ROUND16 (   x,
  a 
)    (celt_mips--,EXTRACT16(PSHR32((x),(a))))

◆ SHL16

#define SHL16 (   a,
  shift 
)    SHL16_(a, shift, __FILE__, __LINE__)

◆ SHL32

#define SHL32 (   a,
  shift 
)    SHL32_(a, shift, __FILE__, __LINE__)

◆ SHR

#define SHR (   a,
  b 
)    SHR32(a,b)

◆ SHR16

#define SHR16 (   a,
  shift 
)    SHR16_(a, shift, __FILE__, __LINE__)

◆ SIG2WORD16

#define SIG2WORD16 (   x)    (SIG2WORD16_generic(x))

◆ SUB16

#define SUB16 (   a,
  b 
)    SUB16_(a, b, __FILE__, __LINE__)

◆ SUB32

#define SUB32 (   a,
  b 
)    SUB32_(a, b, __FILE__, __LINE__)

◆ UADD32

#define UADD32 (   a,
  b 
)    UADD32_(a, b, __FILE__, __LINE__)

◆ USUB32

#define USUB32 (   a,
  b 
)    USUB32_(a, b, __FILE__, __LINE__)

◆ VERIFY_INT

#define VERIFY_INT (   x)    ((x)<=2147483647LL&&(x)>=-2147483648LL)

◆ VERIFY_SHORT

#define VERIFY_SHORT (   x)    ((x)<=32767&&(x)>=-32768)

◆ VERIFY_UINT

#define VERIFY_UINT (   x)    ((x)<=(2147483647LLU<<1))

◆ VSHR32

#define VSHR32 (   a,
  shift 
)    (((shift)>0) ? SHR32(a, shift) : SHL32(a, -(shift)))

Variable Documentation

◆ celt_mips

opus_int64 celt_mips