summaryrefslogtreecommitdiffstats
path: root/media/libjpeg/simd/nasm/jsimdcfg.inc.h
blob: bf2a45ad50c5455a2607d71e0fc9d7090cbc4e8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/*
 * This file generates the include file for the assembly
 * implementations by abusing the C preprocessor.
 *
 * Note: Some things are manually defined as they need to
 * be mapped to NASM types.
 */

;
; Automatically generated include file from jsimdcfg.inc.h
;

#define JPEG_INTERNALS

#include "../jpeglib.h"
#include "../jconfig.h"
#include "../jmorecfg.h"
#include "jsimd.h"

;
; -- jpeglib.h
;

%define _cpp_protection_DCTSIZE   DCTSIZE
%define _cpp_protection_DCTSIZE2  DCTSIZE2

;
; -- jmorecfg.h
;

%define _cpp_protection_RGB_RED             RGB_RED
%define _cpp_protection_RGB_GREEN           RGB_GREEN
%define _cpp_protection_RGB_BLUE            RGB_BLUE
%define _cpp_protection_RGB_PIXELSIZE       RGB_PIXELSIZE

%define _cpp_protection_EXT_RGB_RED         EXT_RGB_RED
%define _cpp_protection_EXT_RGB_GREEN       EXT_RGB_GREEN
%define _cpp_protection_EXT_RGB_BLUE        EXT_RGB_BLUE
%define _cpp_protection_EXT_RGB_PIXELSIZE   EXT_RGB_PIXELSIZE

%define _cpp_protection_EXT_RGBX_RED        EXT_RGBX_RED
%define _cpp_protection_EXT_RGBX_GREEN      EXT_RGBX_GREEN
%define _cpp_protection_EXT_RGBX_BLUE       EXT_RGBX_BLUE
%define _cpp_protection_EXT_RGBX_PIXELSIZE  EXT_RGBX_PIXELSIZE

%define _cpp_protection_EXT_BGR_RED         EXT_BGR_RED
%define _cpp_protection_EXT_BGR_GREEN       EXT_BGR_GREEN
%define _cpp_protection_EXT_BGR_BLUE        EXT_BGR_BLUE
%define _cpp_protection_EXT_BGR_PIXELSIZE   EXT_BGR_PIXELSIZE

%define _cpp_protection_EXT_BGRX_RED        EXT_BGRX_RED
%define _cpp_protection_EXT_BGRX_GREEN      EXT_BGRX_GREEN
%define _cpp_protection_EXT_BGRX_BLUE       EXT_BGRX_BLUE
%define _cpp_protection_EXT_BGRX_PIXELSIZE  EXT_BGRX_PIXELSIZE

%define _cpp_protection_EXT_XBGR_RED        EXT_XBGR_RED
%define _cpp_protection_EXT_XBGR_GREEN      EXT_XBGR_GREEN
%define _cpp_protection_EXT_XBGR_BLUE       EXT_XBGR_BLUE
%define _cpp_protection_EXT_XBGR_PIXELSIZE  EXT_XBGR_PIXELSIZE

%define _cpp_protection_EXT_XRGB_RED        EXT_XRGB_RED
%define _cpp_protection_EXT_XRGB_GREEN      EXT_XRGB_GREEN
%define _cpp_protection_EXT_XRGB_BLUE       EXT_XRGB_BLUE
%define _cpp_protection_EXT_XRGB_PIXELSIZE  EXT_XRGB_PIXELSIZE

%define RGBX_FILLER_0XFF  1

; Representation of a single sample (pixel element value).
; On this SIMD implementation, this must be 'unsigned char'.
;

%define JSAMPLE            byte            ; unsigned char
%define SIZEOF_JSAMPLE     SIZEOF_BYTE     ; sizeof(JSAMPLE)

%define _cpp_protection_CENTERJSAMPLE  CENTERJSAMPLE

; Representation of a DCT frequency coefficient.
; On this SIMD implementation, this must be 'short'.
;
%define JCOEF              word            ; short
%define SIZEOF_JCOEF       SIZEOF_WORD     ; sizeof(JCOEF)

; Datatype used for image dimensions.
; On this SIMD implementation, this must be 'unsigned int'.
;
%define JDIMENSION         dword           ; unsigned int
%define SIZEOF_JDIMENSION  SIZEOF_DWORD    ; sizeof(JDIMENSION)

%define JSAMPROW           POINTER         ; JSAMPLE *     (jpeglib.h)
%define JSAMPARRAY         POINTER         ; JSAMPROW *    (jpeglib.h)
%define JSAMPIMAGE         POINTER         ; JSAMPARRAY *  (jpeglib.h)
%define JCOEFPTR           POINTER         ; JCOEF *       (jpeglib.h)
%define SIZEOF_JSAMPROW    SIZEOF_POINTER  ; sizeof(JSAMPROW)
%define SIZEOF_JSAMPARRAY  SIZEOF_POINTER  ; sizeof(JSAMPARRAY)
%define SIZEOF_JSAMPIMAGE  SIZEOF_POINTER  ; sizeof(JSAMPIMAGE)
%define SIZEOF_JCOEFPTR    SIZEOF_POINTER  ; sizeof(JCOEFPTR)

;
; -- jdct.h
;

; A forward DCT routine is given a pointer to a work area of type DCTELEM[];
; the DCT is to be performed in-place in that buffer.
; To maximize parallelism, Type DCTELEM is changed to short (originally, int).
;
%define DCTELEM                 word         ; short
%define SIZEOF_DCTELEM          SIZEOF_WORD  ; sizeof(DCTELEM)

%define FAST_FLOAT              FP32         ; float
%define SIZEOF_FAST_FLOAT       SIZEOF_FP32  ; sizeof(FAST_FLOAT)

; To maximize parallelism, Type MULTIPLIER is changed to short.
;
%define ISLOW_MULT_TYPE         word         ; must be short
%define SIZEOF_ISLOW_MULT_TYPE  SIZEOF_WORD  ; sizeof(ISLOW_MULT_TYPE)

%define IFAST_MULT_TYPE         word         ; must be short
%define SIZEOF_IFAST_MULT_TYPE  SIZEOF_WORD  ; sizeof(IFAST_MULT_TYPE)
%define IFAST_SCALE_BITS        2            ; fractional bits in scale factors

%define FLOAT_MULT_TYPE         FP32         ; must be float
%define SIZEOF_FLOAT_MULT_TYPE  SIZEOF_FP32  ; sizeof(FLOAT_MULT_TYPE)

;
; -- jsimd.h
;

%define _cpp_protection_JSIMD_NONE   JSIMD_NONE
%define _cpp_protection_JSIMD_MMX    JSIMD_MMX
%define _cpp_protection_JSIMD_3DNOW  JSIMD_3DNOW
%define _cpp_protection_JSIMD_SSE    JSIMD_SSE
%define _cpp_protection_JSIMD_SSE2   JSIMD_SSE2
%define _cpp_protection_JSIMD_AVX2   JSIMD_AVX2