Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(136)

Side by Side Diff: simd/jsimdext.inc

Issue 1953443002: Update to libjpeg_turbo 1.4.90 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « simd/jsimdcpu.asm ('k') | simd/nasm_lt.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; 1 ;
2 ; jsimdext.inc - common declarations 2 ; jsimdext.inc - common declarations
3 ; 3 ;
4 ; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB 4 ; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
5 ; Copyright 2010 D. R. Commander 5 ; Copyright 2010 D. R. Commander
6 ; 6 ;
7 ; Based on 7 ; Based on
8 ; x86 SIMD extension for IJG JPEG library - version 1.02 8 ; x86 SIMD extension for IJG JPEG library - version 1.02
9 ; 9 ;
10 ; Copyright (C) 1999-2006, MIYASAKA Masaru. 10 ; Copyright (C) 1999-2006, MIYASAKA Masaru.
(...skipping 12 matching lines...) Expand all
23 ; appreciated but is not required. 23 ; appreciated but is not required.
24 ; 2. Altered source versions must be plainly marked as such, and must not be 24 ; 2. Altered source versions must be plainly marked as such, and must not be
25 ; misrepresented as being the original software. 25 ; misrepresented as being the original software.
26 ; 3. This notice may not be removed or altered from any source distribution. 26 ; 3. This notice may not be removed or altered from any source distribution.
27 ; 27 ;
28 ; [TAB8] 28 ; [TAB8]
29 29
30 ; ========================================================================== 30 ; ==========================================================================
31 ; System-dependent configurations 31 ; System-dependent configurations
32 32
33 %ifdef WIN32» ; ----(nasm -fwin32 -DWIN32 ...)-------- 33 %ifdef WIN32 ; ----(nasm -fwin32 -DWIN32 ...)--------
34 ; * Microsoft Visual C++ 34 ; * Microsoft Visual C++
35 ; * MinGW (Minimalist GNU for Windows) 35 ; * MinGW (Minimalist GNU for Windows)
36 ; * CygWin 36 ; * CygWin
37 ; * LCC-Win32 37 ; * LCC-Win32
38 38
39 ; -- segment definition -- 39 ; -- segment definition --
40 ; 40 ;
41 %ifdef __YASM_VER__ 41 %ifdef __YASM_VER__
42 %define SEG_TEXT .text align=16 42 %define SEG_TEXT .text align=16
43 %define SEG_CONST .rdata align=16 43 %define SEG_CONST .rdata align=16
44 %else 44 %else
45 %define SEG_TEXT .text align=16 public use32 class=CODE 45 %define SEG_TEXT .text align=16 public use32 class=CODE
46 %define SEG_CONST .rdata align=16 public use32 class=CONST 46 %define SEG_CONST .rdata align=16 public use32 class=CONST
47 %endif 47 %endif
48 48
49 %elifdef WIN64» ; ----(nasm -fwin64 -DWIN64 ...)-------- 49 %elifdef WIN64 ; ----(nasm -fwin64 -DWIN64 ...)--------
50 ; * Microsoft Visual C++ 50 ; * Microsoft Visual C++
51 51
52 ; -- segment definition -- 52 ; -- segment definition --
53 ; 53 ;
54 %ifdef __YASM_VER__ 54 %ifdef __YASM_VER__
55 %define SEG_TEXT .text align=16 55 %define SEG_TEXT .text align=16
56 %define SEG_CONST .rdata align=16 56 %define SEG_CONST .rdata align=16
57 %else 57 %else
58 %define SEG_TEXT .text align=16 public use64 class=CODE 58 %define SEG_TEXT .text align=16 public use64 class=CODE
59 %define SEG_CONST .rdata align=16 public use64 class=CONST 59 %define SEG_CONST .rdata align=16 public use64 class=CONST
60 %endif 60 %endif
61 %define EXTN(name) name» » » ; foo() -> foo 61 %define EXTN(name) name ; foo() -> foo
62 62
63 %elifdef OBJ32» ; ----(nasm -fobj -DOBJ32 ...)---------- 63 %elifdef OBJ32 ; ----(nasm -fobj -DOBJ32 ...)----------
64 ; * Borland C++ (Win32) 64 ; * Borland C++ (Win32)
65 65
66 ; -- segment definition -- 66 ; -- segment definition --
67 ; 67 ;
68 %define SEG_TEXT .text align=16 public use32 class=CODE 68 %define SEG_TEXT _text align=16 public use32 class=CODE
69 %define SEG_CONST .data align=16 public use32 class=DATA 69 %define SEG_CONST _data align=16 public use32 class=DATA
70 70
71 %elifdef ELF» ; ----(nasm -felf[64] -DELF ...)------------ 71 %elifdef ELF ; ----(nasm -felf[64] -DELF ...)------------
72 ; * Linux 72 ; * Linux
73 ; * *BSD family Unix using elf format 73 ; * *BSD family Unix using elf format
74 ; * Unix System V, including Solaris x86, UnixWare and SCO Unix 74 ; * Unix System V, including Solaris x86, UnixWare and SCO Unix
75 75
76 ; PIC is the default on Linux
77 %define PIC
78
79 ; mark stack as non-executable 76 ; mark stack as non-executable
80 section .note.GNU-stack noalloc noexec nowrite progbits 77 section .note.GNU-stack noalloc noexec nowrite progbits
81 78
82 ; -- segment definition -- 79 ; -- segment definition --
83 ; 80 ;
84 %ifdef __x86_64__ 81 %ifdef __x86_64__
85 %define SEG_TEXT .text progbits align=16 82 %define SEG_TEXT .text progbits align=16
86 %define SEG_CONST .rodata progbits align=16 83 %define SEG_CONST .rodata progbits align=16
87 %else 84 %else
88 %define SEG_TEXT .text progbits alloc exec nowrite align=16 85 %define SEG_TEXT .text progbits alloc exec nowrite align=16
89 %define SEG_CONST .rodata progbits alloc noexec nowrite align=16 86 %define SEG_CONST .rodata progbits alloc noexec nowrite align=16
90 %endif 87 %endif
91 88
92 ; To make the code position-independent, append -DPIC to the commandline 89 ; To make the code position-independent, append -DPIC to the commandline
93 ; 90 ;
94 %define GOT_SYMBOL _GLOBAL_OFFSET_TABLE_» ; ELF supports PIC 91 %define GOT_SYMBOL _GLOBAL_OFFSET_TABLE_ ; ELF supports PIC
95 %define EXTN(name) name» » » ; foo() -> foo 92 %define EXTN(name) name ; foo() -> foo
96 93
97 %elifdef AOUT» ; ----(nasm -faoutb/aout -DAOUT ...)---- 94 %elifdef AOUT ; ----(nasm -faoutb/aout -DAOUT ...)----
98 ; * Older Linux using a.out format (nasm -f aout -DAOUT ...) 95 ; * Older Linux using a.out format (nasm -f aout -DAOUT ...)
99 ; * *BSD family Unix using a.out format (nasm -f aoutb -DAOUT ...) 96 ; * *BSD family Unix using a.out format (nasm -f aoutb -DAOUT ...)
100 97
101 ; -- segment definition -- 98 ; -- segment definition --
102 ; 99 ;
103 %define SEG_TEXT .text 100 %define SEG_TEXT .text
104 %define SEG_CONST .data 101 %define SEG_CONST .data
105 102
106 ; To make the code position-independent, append -DPIC to the commandline 103 ; To make the code position-independent, append -DPIC to the commandline
107 ; 104 ;
108 %define GOT_SYMBOL __GLOBAL_OFFSET_TABLE_» ; BSD-style a.out supports PIC 105 %define GOT_SYMBOL __GLOBAL_OFFSET_TABLE_ ; BSD-style a.out supports PIC
109 106
110 %elifdef MACHO» ; ----(nasm -fmacho -DMACHO ...)-------- 107 %elifdef MACHO ; ----(nasm -fmacho -DMACHO ...)--------
111 ; * NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X (Mach-O format) 108 ; * NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X (Mach-O format)
112 109
113 ; -- segment definition -- 110 ; -- segment definition --
114 ; 111 ;
115 %define SEG_TEXT .text ;align=16» ; nasm doesn't accept align=16. why? 112 %define SEG_TEXT .text ;align=16 ; nasm doesn't accept align=16. why?
116 %define SEG_CONST .rodata align=16 113 %define SEG_CONST .rodata align=16
117 114
118 ; The generation of position-independent code (PIC) is the default on Darwin. 115 ; The generation of position-independent code (PIC) is the default on Darwin.
119 ; 116 ;
120 %define PIC 117 %define PIC
121 %define GOT_SYMBOL _MACHO_PIC_»» ; Mach-O style code-relative addressing 118 %define GOT_SYMBOL _MACHO_PIC_ ; Mach-O style code-relative addressing
122 119
123 %else» » ; ----(Other case)---------------------- 120 %else ; ----(Other case)----------------------
124 121
125 ; -- segment definition -- 122 ; -- segment definition --
126 ; 123 ;
127 %define SEG_TEXT .text 124 %define SEG_TEXT .text
128 %define SEG_CONST .data 125 %define SEG_CONST .data
129 126
130 %endif» ; ---------------------------------------------- 127 %endif ; ----------------------------------------------
131 128
132 ; ========================================================================== 129 ; ==========================================================================
133 130
134 ; -------------------------------------------------------------------------- 131 ; --------------------------------------------------------------------------
135 ; Common types 132 ; Common types
136 ; 133 ;
137 %ifdef __x86_64__ 134 %ifdef __x86_64__
138 %define POINTER qword ; general pointer type 135 %define POINTER qword ; general pointer type
139 %define SIZEOF_POINTER SIZEOF_QWORD ; sizeof(POINTER) 136 %define SIZEOF_POINTER SIZEOF_QWORD ; sizeof(POINTER)
140 %define POINTER_BIT QWORD_BIT ; sizeof(POINTER)*BYTE_BIT 137 %define POINTER_BIT QWORD_BIT ; sizeof(POINTER)*BYTE_BIT
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 %define BYTE_BIT 8 ; CHAR_BIT in C 172 %define BYTE_BIT 8 ; CHAR_BIT in C
176 %define WORD_BIT 16 ; sizeof(WORD)*BYTE_BIT 173 %define WORD_BIT 16 ; sizeof(WORD)*BYTE_BIT
177 %define DWORD_BIT 32 ; sizeof(DWORD)*BYTE_BIT 174 %define DWORD_BIT 32 ; sizeof(DWORD)*BYTE_BIT
178 %define QWORD_BIT 64 ; sizeof(QWORD)*BYTE_BIT 175 %define QWORD_BIT 64 ; sizeof(QWORD)*BYTE_BIT
179 %define OWORD_BIT 128 ; sizeof(OWORD)*BYTE_BIT 176 %define OWORD_BIT 128 ; sizeof(OWORD)*BYTE_BIT
180 177
181 ; -------------------------------------------------------------------------- 178 ; --------------------------------------------------------------------------
182 ; External Symbol Name 179 ; External Symbol Name
183 ; 180 ;
184 %ifndef EXTN 181 %ifndef EXTN
185 %define EXTN(name) _ %+ name» » ; foo() -> _foo 182 %define EXTN(name) _ %+ name ; foo() -> _foo
186 %endif 183 %endif
187 184
188 ; -------------------------------------------------------------------------- 185 ; --------------------------------------------------------------------------
189 ; Macros for position-independent code (PIC) support 186 ; Macros for position-independent code (PIC) support
190 ; 187 ;
191 %ifndef GOT_SYMBOL 188 %ifndef GOT_SYMBOL
192 %undef PIC 189 %undef PIC
193 %endif 190 %endif
194 191
195 %ifdef PIC ; ------------------------------------------- 192 %ifdef PIC ; -------------------------------------------
196 193
197 %ifidn GOT_SYMBOL,_MACHO_PIC_ ; -------------------- 194 %ifidn GOT_SYMBOL,_MACHO_PIC_ ; --------------------
198 195
199 ; At present, nasm doesn't seem to support PIC generation for Mach-O. 196 ; At present, nasm doesn't seem to support PIC generation for Mach-O.
200 ; The PIC support code below is a little tricky. 197 ; The PIC support code below is a little tricky.
201 198
202 » SECTION»SEG_CONST 199 SECTION SEG_CONST
203 const_base: 200 const_base:
204 201
205 %define GOTOFF(got,sym) (got) + (sym) - const_base 202 %define GOTOFF(got,sym) (got) + (sym) - const_base
206 203
207 %imacro get_GOT»1 204 %imacro get_GOT 1
208 » ; NOTE: this macro destroys ecx resister. 205 ; NOTE: this macro destroys ecx resister.
209 » call» %%geteip 206 call %%geteip
210 » add» ecx, byte (%%ref - $) 207 add ecx, byte (%%ref - $)
211 » jmp» short %%adjust 208 jmp short %%adjust
212 %%geteip: 209 %%geteip:
213 » mov» ecx, POINTER [esp] 210 mov ecx, POINTER [esp]
214 » ret 211 ret
215 %%adjust: 212 %%adjust:
216 » push» ebp 213 push ebp
217 » xor» ebp,ebp»» ; ebp = 0 214 xor ebp,ebp ; ebp = 0
218 %ifidni %1,ebx» ; (%1 == ebx) 215 %ifidni %1,ebx ; (%1 == ebx)
219 » ; db 0x8D,0x9C + jmp near const_base = 216 ; db 0x8D,0x9C + jmp near const_base =
220 » ; lea ebx, [ecx+ebp*8+(const_base-%%ref)] ; 8D,9C,E9,(offset32) 217 ; lea ebx, [ecx+ebp*8+(const_base-%%ref)] ; 8D,9C,E9,(offset32)
221 » db» 0x8D,0x9C» » ; 8D,9C 218 db 0x8D,0x9C ; 8D,9C
222 » jmp» near const_base»» ; E9,(const_base-%%ref) 219 jmp near const_base ; E9,(const_base-%%ref)
223 %%ref: 220 %%ref:
224 %else ; (%1 != ebx) 221 %else ; (%1 != ebx)
225 » ; db 0x8D,0x8C + jmp near const_base = 222 ; db 0x8D,0x8C + jmp near const_base =
226 » ; lea ecx, [ecx+ebp*8+(const_base-%%ref)] ; 8D,8C,E9,(offset32) 223 ; lea ecx, [ecx+ebp*8+(const_base-%%ref)] ; 8D,8C,E9,(offset32)
227 » db» 0x8D,0x8C» » ; 8D,8C 224 db 0x8D,0x8C ; 8D,8C
228 » jmp» near const_base»» ; E9,(const_base-%%ref) 225 jmp near const_base ; E9,(const_base-%%ref)
229 %%ref:» mov» %1, ecx 226 %%ref: mov %1, ecx
230 %endif ; (%1 == ebx) 227 %endif ; (%1 == ebx)
231 » pop» ebp 228 pop ebp
232 %endmacro 229 %endmacro
233 230
234 %else» ; GOT_SYMBOL != _MACHO_PIC_ ---------------- 231 %else ; GOT_SYMBOL != _MACHO_PIC_ ----------------
235 232
236 %define GOTOFF(got,sym) (got) + (sym) wrt ..gotoff 233 %define GOTOFF(got,sym) (got) + (sym) wrt ..gotoff
237 234
238 %imacro get_GOT»1 235 %imacro get_GOT 1
239 » extern» GOT_SYMBOL 236 extern GOT_SYMBOL
240 » call» %%geteip 237 call %%geteip
241 » add» %1, GOT_SYMBOL + $$ - $ wrt ..gotpc 238 add %1, GOT_SYMBOL + $$ - $ wrt ..gotpc
242 » jmp» short %%done 239 jmp short %%done
243 %%geteip: 240 %%geteip:
244 » mov» %1, POINTER [esp] 241 mov %1, POINTER [esp]
245 » ret 242 ret
246 %%done: 243 %%done:
247 %endmacro 244 %endmacro
248 245
249 %endif» ; GOT_SYMBOL == _MACHO_PIC_ ---------------- 246 %endif ; GOT_SYMBOL == _MACHO_PIC_ ----------------
250 247
251 %imacro pushpic»1.nolist 248 %imacro pushpic 1.nolist
252 » push» %1 249 push %1
253 %endmacro 250 %endmacro
254 %imacro poppic» 1.nolist 251 %imacro poppic 1.nolist
255 » pop» %1 252 pop %1
256 %endmacro 253 %endmacro
257 %imacro movpic» 2.nolist 254 %imacro movpic 2.nolist
258 » mov» %1,%2 255 mov %1,%2
259 %endmacro 256 %endmacro
260 257
261 %else» ; !PIC ----------------------------------------- 258 %else ; !PIC -----------------------------------------
262 259
263 %define GOTOFF(got,sym) (sym) 260 %define GOTOFF(got,sym) (sym)
264 261
265 %imacro get_GOT»1.nolist 262 %imacro get_GOT 1.nolist
266 %endmacro 263 %endmacro
267 %imacro pushpic»1.nolist 264 %imacro pushpic 1.nolist
268 %endmacro 265 %endmacro
269 %imacro poppic» 1.nolist 266 %imacro poppic 1.nolist
270 %endmacro 267 %endmacro
271 %imacro movpic» 2.nolist 268 %imacro movpic 2.nolist
272 %endmacro 269 %endmacro
273 270
274 %endif» ; PIC ----------------------------------------- 271 %endif ; PIC -----------------------------------------
275 272
276 ; -------------------------------------------------------------------------- 273 ; --------------------------------------------------------------------------
277 ; Align the next instruction on {2,4,8,16,..}-byte boundary. 274 ; Align the next instruction on {2,4,8,16,..}-byte boundary.
278 ; ".balign n,,m" in GNU as 275 ; ".balign n,,m" in GNU as
279 ; 276 ;
280 %define MSKLE(x,y) (~(((y) & 0xFFFF) - ((x) & 0xFFFF)) >> 16) 277 %define MSKLE(x,y) (~(((y) & 0xFFFF) - ((x) & 0xFFFF)) >> 16)
281 %define FILLB(b,n) (($$-(b)) & ((n)-1)) 278 %define FILLB(b,n) (($$-(b)) & ((n)-1))
282 279
283 %imacro alignx 1-2.nolist 0xFFFF 280 %imacro alignx 1-2.nolist 0xFFFF
284 %%bs:» times MSKLE(FILLB(%%bs,%1),%2) & MSKLE(16,FILLB($,%1)) & FILLB($,%1) \ 281 %%bs: times MSKLE(FILLB(%%bs,%1),%2) & MSKLE(16,FILLB($,%1)) & FILLB($,%1) \
285 » db 0x90 ; nop 282 db 0x90 ; nop
286 » times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/9 \ 283 times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/9 \
287 » db 0x8D,0x9C,0x23,0x00,0x00,0x00,0x00 ; lea ebx,[ebx+0x00000000] 284 db 0x8D,0x9C,0x23,0x00,0x00,0x00,0x00 ; lea ebx,[ebx+0x00000000]
288 » times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/7 \ 285 times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/7 \
289 » db 0x8D,0xAC,0x25,0x00,0x00,0x00,0x00 ; lea ebp,[ebp+0x00000000] 286 db 0x8D,0xAC,0x25,0x00,0x00,0x00,0x00 ; lea ebp,[ebp+0x00000000]
290 » times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/6 \ 287 times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/6 \
291 » db 0x8D,0xAD,0x00,0x00,0x00,0x00 ; lea ebp,[ebp+0x00000000] 288 db 0x8D,0xAD,0x00,0x00,0x00,0x00 ; lea ebp,[ebp+0x00000000]
292 » times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/4 \ 289 times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/4 \
293 » db 0x8D,0x6C,0x25,0x00 ; lea ebp,[ebp+0x00] 290 db 0x8D,0x6C,0x25,0x00 ; lea ebp,[ebp+0x00]
294 » times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/3 \ 291 times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/3 \
295 » db 0x8D,0x6D,0x00 ; lea ebp,[ebp+0x00] 292 db 0x8D,0x6D,0x00 ; lea ebp,[ebp+0x00]
296 » times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/2 \ 293 times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/2 \
297 » db 0x8B,0xED ; mov ebp,ebp 294 db 0x8B,0xED ; mov ebp,ebp
298 » times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/1 \ 295 times MSKLE(FILLB(%%bs,%1),%2) & FILLB($,%1)/1 \
299 » db 0x90 ; nop 296 db 0x90 ; nop
300 %endmacro 297 %endmacro
301 298
302 ; Align the next data on {2,4,8,16,..}-byte boundary. 299 ; Align the next data on {2,4,8,16,..}-byte boundary.
303 ; 300 ;
304 %imacro alignz 1.nolist 301 %imacro alignz 1.nolist
305 » align %1, db 0» » ; filling zeros 302 align %1, db 0 ; filling zeros
306 %endmacro 303 %endmacro
307 304
308 %ifdef __x86_64__ 305 %ifdef __x86_64__
309 306
310 %ifdef WIN64 307 %ifdef WIN64
311 308
312 %imacro collect_args 0 309 %imacro collect_args 0
313 » push r12 310 push r12
314 » push r13 311 push r13
315 » push r14 312 push r14
316 » push r15 313 push r15
317 » mov r10, rcx 314 mov r10, rcx
318 » mov r11, rdx 315 mov r11, rdx
319 » mov r12, r8 316 mov r12, r8
320 » mov r13, r9 317 mov r13, r9
321 » mov r14, [rax+48] 318 mov r14, [rax+48]
322 » mov r15, [rax+56] 319 mov r15, [rax+56]
323 » push rsi 320 push rsi
324 » push rdi 321 push rdi
325 » sub rsp, SIZEOF_XMMWORD 322 sub rsp, SIZEOF_XMMWORD
326 » movaps XMMWORD [rsp], xmm6 323 movaps XMMWORD [rsp], xmm6
327 » sub rsp, SIZEOF_XMMWORD 324 sub rsp, SIZEOF_XMMWORD
328 » movaps XMMWORD [rsp], xmm7 325 movaps XMMWORD [rsp], xmm7
329 %endmacro 326 %endmacro
330 327
331 %imacro uncollect_args 0 328 %imacro uncollect_args 0
332 » movaps xmm7, XMMWORD [rsp] 329 movaps xmm7, XMMWORD [rsp]
333 » add rsp, SIZEOF_XMMWORD 330 add rsp, SIZEOF_XMMWORD
334 » movaps xmm6, XMMWORD [rsp] 331 movaps xmm6, XMMWORD [rsp]
335 » add rsp, SIZEOF_XMMWORD 332 add rsp, SIZEOF_XMMWORD
336 » pop rdi 333 pop rdi
337 » pop rsi 334 pop rsi
338 » pop r15 335 pop r15
339 » pop r14 336 pop r14
340 » pop r13 337 pop r13
341 » pop r12 338 pop r12
342 %endmacro 339 %endmacro
343 340
344 %else 341 %else
345 342
346 %imacro collect_args 0 343 %imacro collect_args 0
347 » push r10 344 push r10
348 » push r11 345 push r11
349 » push r12 346 push r12
350 » push r13 347 push r13
351 » push r14 348 push r14
352 » push r15 349 push r15
353 » mov r10, rdi 350 mov r10, rdi
354 » mov r11, rsi 351 mov r11, rsi
355 » mov r12, rdx 352 mov r12, rdx
356 » mov r13, rcx 353 mov r13, rcx
357 » mov r14, r8 354 mov r14, r8
358 » mov r15, r9 355 mov r15, r9
359 %endmacro 356 %endmacro
360 357
361 %imacro uncollect_args 0 358 %imacro uncollect_args 0
362 » pop r15 359 pop r15
363 » pop r14 360 pop r14
364 » pop r13 361 pop r13
365 » pop r12 362 pop r12
366 » pop r11 363 pop r11
367 » pop r10 364 pop r10
368 %endmacro 365 %endmacro
369 366
370 %endif 367 %endif
371 368
372 %endif 369 %endif
373 370
374 ; -------------------------------------------------------------------------- 371 ; --------------------------------------------------------------------------
375 ; Defines picked up from the C headers 372 ; Defines picked up from the C headers
376 ; 373 ;
377 %include "jsimdcfg.inc" 374 %include "jsimdcfg.inc"
378 375
379 ; Begin chromium edits
380 %ifdef MACHO ; ----(nasm -fmacho -DMACHO ...)--------
381 %define PRIVATE :private_extern
382 %elifdef ELF ; ----(nasm -felf[64] -DELF ...)------------
383 %define PRIVATE :hidden
384 %else
385 %define PRIVATE
386 %endif
387 ; End chromium edits
388
389 ; -------------------------------------------------------------------------- 376 ; --------------------------------------------------------------------------
OLDNEW
« no previous file with comments | « simd/jsimdcpu.asm ('k') | simd/nasm_lt.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698