src/hermes/HeadMMX.h

/* [<][>][^][v][top]
[bottom][index][help] */

FUNCTIONS

This source file includes following functions.

   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

/* [<][>][^][v][top][bottom][index][help] */