jsimdcfg.inc.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. // This file generates the include file for the assembly
  2. // implementations by abusing the C preprocessor.
  3. //
  4. // Note: Some things are manually defined as they need to
  5. // be mapped to NASM types.
  6. ;
  7. ; Automatically generated include file from jsimdcfg.inc.h
  8. ;
  9. #define JPEG_INTERNALS
  10. #include "../jpeglib.h"
  11. #include "../jconfig.h"
  12. #include "../jmorecfg.h"
  13. #include "jsimd.h"
  14. ;
  15. ; -- jpeglib.h
  16. ;
  17. %define _cpp_protection_DCTSIZE DCTSIZE
  18. %define _cpp_protection_DCTSIZE2 DCTSIZE2
  19. ;
  20. ; -- jmorecfg.h
  21. ;
  22. %define _cpp_protection_RGB_RED RGB_RED
  23. %define _cpp_protection_RGB_GREEN RGB_GREEN
  24. %define _cpp_protection_RGB_BLUE RGB_BLUE
  25. %define _cpp_protection_RGB_PIXELSIZE RGB_PIXELSIZE
  26. %define _cpp_protection_EXT_RGB_RED EXT_RGB_RED
  27. %define _cpp_protection_EXT_RGB_GREEN EXT_RGB_GREEN
  28. %define _cpp_protection_EXT_RGB_BLUE EXT_RGB_BLUE
  29. %define _cpp_protection_EXT_RGB_PIXELSIZE EXT_RGB_PIXELSIZE
  30. %define _cpp_protection_EXT_RGBX_RED EXT_RGBX_RED
  31. %define _cpp_protection_EXT_RGBX_GREEN EXT_RGBX_GREEN
  32. %define _cpp_protection_EXT_RGBX_BLUE EXT_RGBX_BLUE
  33. %define _cpp_protection_EXT_RGBX_PIXELSIZE EXT_RGBX_PIXELSIZE
  34. %define _cpp_protection_EXT_BGR_RED EXT_BGR_RED
  35. %define _cpp_protection_EXT_BGR_GREEN EXT_BGR_GREEN
  36. %define _cpp_protection_EXT_BGR_BLUE EXT_BGR_BLUE
  37. %define _cpp_protection_EXT_BGR_PIXELSIZE EXT_BGR_PIXELSIZE
  38. %define _cpp_protection_EXT_BGRX_RED EXT_BGRX_RED
  39. %define _cpp_protection_EXT_BGRX_GREEN EXT_BGRX_GREEN
  40. %define _cpp_protection_EXT_BGRX_BLUE EXT_BGRX_BLUE
  41. %define _cpp_protection_EXT_BGRX_PIXELSIZE EXT_BGRX_PIXELSIZE
  42. %define _cpp_protection_EXT_XBGR_RED EXT_XBGR_RED
  43. %define _cpp_protection_EXT_XBGR_GREEN EXT_XBGR_GREEN
  44. %define _cpp_protection_EXT_XBGR_BLUE EXT_XBGR_BLUE
  45. %define _cpp_protection_EXT_XBGR_PIXELSIZE EXT_XBGR_PIXELSIZE
  46. %define _cpp_protection_EXT_XRGB_RED EXT_XRGB_RED
  47. %define _cpp_protection_EXT_XRGB_GREEN EXT_XRGB_GREEN
  48. %define _cpp_protection_EXT_XRGB_BLUE EXT_XRGB_BLUE
  49. %define _cpp_protection_EXT_XRGB_PIXELSIZE EXT_XRGB_PIXELSIZE
  50. %define RGBX_FILLER_0XFF 1
  51. ; Representation of a single sample (pixel element value).
  52. ; On this SIMD implementation, this must be 'unsigned char'.
  53. ;
  54. %define JSAMPLE byte ; unsigned char
  55. %define SIZEOF_JSAMPLE SIZEOF_BYTE ; sizeof(JSAMPLE)
  56. %define _cpp_protection_CENTERJSAMPLE CENTERJSAMPLE
  57. ; Representation of a DCT frequency coefficient.
  58. ; On this SIMD implementation, this must be 'short'.
  59. ;
  60. %define JCOEF word ; short
  61. %define SIZEOF_JCOEF SIZEOF_WORD ; sizeof(JCOEF)
  62. ; Datatype used for image dimensions.
  63. ; On this SIMD implementation, this must be 'unsigned int'.
  64. ;
  65. %define JDIMENSION dword ; unsigned int
  66. %define SIZEOF_JDIMENSION SIZEOF_DWORD ; sizeof(JDIMENSION)
  67. %define JSAMPROW POINTER ; JSAMPLE * (jpeglib.h)
  68. %define JSAMPARRAY POINTER ; JSAMPROW * (jpeglib.h)
  69. %define JSAMPIMAGE POINTER ; JSAMPARRAY * (jpeglib.h)
  70. %define JCOEFPTR POINTER ; JCOEF * (jpeglib.h)
  71. %define SIZEOF_JSAMPROW SIZEOF_POINTER ; sizeof(JSAMPROW)
  72. %define SIZEOF_JSAMPARRAY SIZEOF_POINTER ; sizeof(JSAMPARRAY)
  73. %define SIZEOF_JSAMPIMAGE SIZEOF_POINTER ; sizeof(JSAMPIMAGE)
  74. %define SIZEOF_JCOEFPTR SIZEOF_POINTER ; sizeof(JCOEFPTR)
  75. ;
  76. ; -- jdct.h
  77. ;
  78. ; A forward DCT routine is given a pointer to a work area of type DCTELEM[];
  79. ; the DCT is to be performed in-place in that buffer.
  80. ; To maximize parallelism, Type DCTELEM is changed to short (originally, int).
  81. ;
  82. %define DCTELEM word ; short
  83. %define SIZEOF_DCTELEM SIZEOF_WORD ; sizeof(DCTELEM)
  84. %define FAST_FLOAT FP32 ; float
  85. %define SIZEOF_FAST_FLOAT SIZEOF_FP32 ; sizeof(FAST_FLOAT)
  86. ; To maximize parallelism, Type MULTIPLIER is changed to short.
  87. ;
  88. %define ISLOW_MULT_TYPE word ; must be short
  89. %define SIZEOF_ISLOW_MULT_TYPE SIZEOF_WORD ; sizeof(ISLOW_MULT_TYPE)
  90. %define IFAST_MULT_TYPE word ; must be short
  91. %define SIZEOF_IFAST_MULT_TYPE SIZEOF_WORD ; sizeof(IFAST_MULT_TYPE)
  92. %define IFAST_SCALE_BITS 2 ; fractional bits in scale factors
  93. %define FLOAT_MULT_TYPE FP32 ; must be float
  94. %define SIZEOF_FLOAT_MULT_TYPE SIZEOF_FP32 ; sizeof(FLOAT_MULT_TYPE)
  95. ;
  96. ; -- jsimd.h
  97. ;
  98. %define _cpp_protection_JSIMD_NONE JSIMD_NONE
  99. %define _cpp_protection_JSIMD_MMX JSIMD_MMX
  100. %define _cpp_protection_JSIMD_3DNOW JSIMD_3DNOW
  101. %define _cpp_protection_JSIMD_SSE JSIMD_SSE
  102. %define _cpp_protection_JSIMD_SSE2 JSIMD_SSE2
  103. %define _cpp_protection_JSIMD_AVX2 JSIMD_AVX2