1 #ifndef _MCHASM_H
2 #define _MCHASM_H
3 
4 #ifdef I386_ASM
5 #define RP2 __attribute__ ((regparm (2)))
6 #else
7 #define RP2
8 #endif
9 
10 typedef uint32_t RP2 (*mixAddAbsfn)(const void *ch, uint32_t len);
11 
12 extern uint32_t RP2 mixAddAbs16M(const void *ch, uint32_t len);
13 extern uint32_t RP2 mixAddAbs16MS(const void *ch, uint32_t len);
14 extern uint32_t RP2 mixAddAbs16S(const void *ch, uint32_t len);
15 extern uint32_t RP2 mixAddAbs16SS(const void *ch, uint32_t len);
16 
17 extern uint32_t RP2 mixAddAbs8M(const void *ch, uint32_t len);
18 extern uint32_t RP2 mixAddAbs8MS(const void *ch, uint32_t len);
19 extern uint32_t RP2 mixAddAbs8S(const void *ch, uint32_t len);
20 extern uint32_t RP2 mixAddAbs8SS(const void *ch, uint32_t len);
21 
22 
23 #if defined(I386_ASM) && !defined(__PIC__)
24 #define RP3 __attribute__ ((regparm (3)))
25 #else
26 #define RP3
27 #endif
28 
29 typedef void RP3 (*mixGetMasterSamplefn)(int16_t *dst, const void *src, uint32_t len, uint32_t step);
30 
31 extern void RP3 mixGetMasterSampleMS8M(int16_t *dst, const void *src, uint32_t len, uint32_t step);
32 extern void RP3 mixGetMasterSampleMU8M(int16_t *dst, const void *src, uint32_t len, uint32_t step);
33 extern void RP3 mixGetMasterSampleMS8S(int16_t *dst, const void *src, uint32_t len, uint32_t step);
34 extern void RP3 mixGetMasterSampleMU8S(int16_t *dst, const void *src, uint32_t len, uint32_t step);
35 extern void RP3 mixGetMasterSampleSS8M(int16_t *dst, const void *src, uint32_t len, uint32_t step);
36 extern void RP3 mixGetMasterSampleSU8M(int16_t *dst, const void *src, uint32_t len, uint32_t step);
37 extern void RP3 mixGetMasterSampleSS8S(int16_t *dst, const void *src, uint32_t len, uint32_t step);
38 extern void RP3 mixGetMasterSampleSU8S(int16_t *dst, const void *src, uint32_t len, uint32_t step);
39 extern void RP3 mixGetMasterSampleSS8SR(int16_t *dst, const void *src, uint32_t len, uint32_t step);
40 extern void RP3 mixGetMasterSampleSU8SR(int16_t *dst, const void *src, uint32_t len, uint32_t step);
41 
42 extern void RP3 mixGetMasterSampleMS16M(int16_t *dst, const void *src, uint32_t len, uint32_t step);
43 extern void RP3 mixGetMasterSampleMU16M(int16_t *dst, const void *src, uint32_t len, uint32_t step);
44 extern void RP3 mixGetMasterSampleMS16S(int16_t *dst, const void *src, uint32_t len, uint32_t step);
45 extern void RP3 mixGetMasterSampleMU16S(int16_t *dst, const void *src, uint32_t len, uint32_t step);
46 extern void RP3 mixGetMasterSampleSS16M(int16_t *dst, const void *src, uint32_t len, uint32_t step);
47 extern void RP3 mixGetMasterSampleSU16M(int16_t *dst, const void *src, uint32_t len, uint32_t step);
48 extern void RP3 mixGetMasterSampleSS16S(int16_t *dst, const void *src, uint32_t len, uint32_t step);
49 extern void RP3 mixGetMasterSampleSU16S(int16_t *dst, const void *src, uint32_t len, uint32_t step);
50 extern void RP3 mixGetMasterSampleSS16SR(int16_t *dst, const void *src, uint32_t len, uint32_t step);
51 extern void RP3 mixGetMasterSampleSU16SR(int16_t *dst, const void *src, uint32_t len, uint32_t step);
52 
53 #endif
54