Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
8210 | maxcodehac | 1 | /* |
2 | Header definitions for the MMX routines for the HERMES library |
||
3 | Copyright (c) 1998 Christian Nentwich (c.nentwich@cs.ucl.ac.uk) |
||
4 | This source code is licensed under the GNU LGPL |
||
5 | |||
6 | Please refer to the file COPYING.LIB contained in the distribution for |
||
7 | licensing conditions |
||
8 | */ |
||
9 | |||
10 | #ifndef __HERMES_HEAD_MMX__ |
||
11 | #define __HERMES_HEAD_MMX__ |
||
12 | |||
13 | |||
14 | /* If you cannot stand ifdefs, then please do not look into this file, it's |
||
15 | going to end your life :) */ |
||
16 | |||
17 | #ifdef X86_ASSEMBLER |
||
18 | |||
19 | |||
20 | #ifdef __cplusplus |
||
21 | extern "C" { |
||
22 | #endif |
||
23 | |||
24 | void STACKCALL ConvertMMX(HermesConverterInterface *); |
||
25 | |||
26 | void STACKCALL ClearMMX_32(HermesClearInterface *); |
||
27 | void STACKCALL ClearMMX_24(HermesClearInterface *); |
||
28 | void STACKCALL ClearMMX_16(HermesClearInterface *); |
||
29 | void STACKCALL ClearMMX_8(HermesClearInterface *); |
||
30 | |||
31 | void ConvertMMXpII32_24RGB888(); |
||
32 | void ConvertMMXpII32_16RGB565(); |
||
33 | void ConvertMMXpII32_16BGR565(); |
||
34 | void ConvertMMXpII32_16RGB555(); |
||
35 | void ConvertMMXpII32_16BGR565(); |
||
36 | void ConvertMMXpII32_16BGR555(); |
||
37 | |||
38 | void ConvertMMXp32_16RGB555(); |
||
39 | |||
40 | #ifdef __cplusplus |
||
41 | } |
||
42 | #endif |
||
43 | |||
44 | |||
45 | |||
46 | /* Fix the underscore business with ELF compilers */ |
||
47 | |||
48 | #if defined(__ELF__) && defined(__GNUC__) |
||
49 | #ifdef __cplusplus |
||
50 | extern "C" { |
||
51 | #endif |
||
52 | |||
53 | void ConvertMMX(HermesConverterInterface *) __attribute__ ((alias ("_ConvertMMX"))); |
||
54 | #if 0 |
||
55 | void ClearMMX_32(HermesClearInterface *) __attribute__ ((alias ("_ClearMMX_32"))); |
||
56 | void ClearMMX_24(HermesClearInterface *) __attribute__ ((alias ("_ClearMMX_24"))); |
||
57 | void ClearMMX_16(HermesClearInterface *) __attribute__ ((alias ("_ClearMMX_16"))); |
||
58 | void ClearMMX_8(HermesClearInterface *) __attribute__ ((alias ("_ClearMMX_8"))); |
||
59 | |||
60 | void ConvertMMXp32_16RGB555() __attribute__ ((alias ("_ConvertMMXp32_16RGB555"))); |
||
61 | #endif |
||
62 | |||
63 | void ConvertMMXpII32_24RGB888() __attribute__ ((alias ("_ConvertMMXpII32_24RGB888"))); |
||
64 | void ConvertMMXpII32_16RGB565() __attribute__ ((alias ("_ConvertMMXpII32_16RGB565"))); |
||
65 | void ConvertMMXpII32_16BGR565() __attribute__ ((alias ("_ConvertMMXpII32_16BGR565"))); |
||
66 | void ConvertMMXpII32_16RGB555() __attribute__ ((alias ("_ConvertMMXpII32_16RGB555"))); |
||
67 | void ConvertMMXpII32_16BGR555() __attribute__ ((alias ("_ConvertMMXpII32_16BGR555"))); |
||
68 | |||
69 | #ifdef __cplusplus |
||
70 | } |
||
71 | #endif |
||
72 | |||
73 | #endif /* ELF and GNUC */ |
||
74 | |||
75 | |||
76 | |||
77 | |||
78 | /* Make it work with Watcom */ |
||
79 | #ifdef __WATCOMC__ |
||
80 | #pragma warning 601 9 |
||
81 | |||
82 | #pragma aux ConvertMMX "_*" modify [EAX EBX ECX EDX ESI EDI] |
||
83 | |||
84 | #pragma aux ClearMMX_32 "_*" modify [EAX EBX ECX EDX ESI EDI] |
||
85 | #pragma aux ClearMMX_24 "_*" modify [EAX EBX ECX EDX ESI EDI] |
||
86 | #pragma aux ClearMMX_16 "_*" modify [EAX EBX ECX EDX ESI EDI] |
||
87 | #pragma aux ClearMMX_8 "_*" modify [EAX EBX ECX EDX ESI EDI] |
||
88 | |||
89 | #pragma aux ConvertMMXpII32_24RGB888 "_*" |
||
90 | #pragma aux ConvertMMXpII32_16RGB565 "_*" |
||
91 | #pragma aux ConvertMMXpII32_16BGR565 "_*" |
||
92 | #pragma aux ConvertMMXpII32_16RGB555 "_*" |
||
93 | #pragma aux ConvertMMXpII32_16BGR555 "_*" |
||
94 | #pragma aux ConvertMMXp32_16RGB555 "_*" |
||
95 | |||
96 | #endif /* WATCOM */ |
||
97 | |||
98 | #endif /* X86_ASSEMBLER */ |
||
99 | |||
100 | |||
101 | #endif |