| OLD | NEW |
| 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 20 matching lines...) Expand all Loading... |
| 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 %define SEG_TEXT .text align=16 ; public use32 class=CODE | 41 %ifdef __YASM_VER__ |
| 42 %define SEG_CONST .rdata align=16 ; public use32 class=CONST | 42 %define SEG_TEXT .text align=16 |
| 43 %define SEG_CONST .rdata align=16 |
| 44 %else |
| 45 %define SEG_TEXT .text align=16 public use32 class=CODE |
| 46 %define SEG_CONST .rdata align=16 public use32 class=CONST |
| 47 %endif |
| 43 | 48 |
| 44 %elifdef WIN64 ; ----(nasm -fwin64 -DWIN64 ...)-------- | 49 %elifdef WIN64 ; ----(nasm -fwin64 -DWIN64 ...)-------- |
| 45 ; * Microsoft Visual C++ | 50 ; * Microsoft Visual C++ |
| 46 | 51 |
| 47 ; -- segment definition -- | 52 ; -- segment definition -- |
| 48 ; | 53 ; |
| 49 %define SEG_TEXT .text align=16 ; public use64 class=CODE | 54 %ifdef __YASM_VER__ |
| 50 %define SEG_CONST .rdata align=16 ; public use64 class=CONST | 55 %define SEG_TEXT .text align=16 |
| 51 %ifdef MSVC | 56 %define SEG_CONST .rdata align=16 |
| 57 %else |
| 58 %define SEG_TEXT .text align=16 public use64 class=CODE |
| 59 %define SEG_CONST .rdata align=16 public use64 class=CONST |
| 60 %endif |
| 52 %define EXTN(name) name ; foo() -> foo | 61 %define EXTN(name) name ; foo() -> foo |
| 53 %endif | |
| 54 | 62 |
| 55 %elifdef OBJ32 ; ----(nasm -fobj -DOBJ32 ...)---------- | 63 %elifdef OBJ32 ; ----(nasm -fobj -DOBJ32 ...)---------- |
| 56 ; * Borland C++ (Win32) | 64 ; * Borland C++ (Win32) |
| 57 | 65 |
| 58 ; -- segment definition -- | 66 ; -- segment definition -- |
| 59 ; | 67 ; |
| 60 %define SEG_TEXT .text align=16 public use32 class=CODE | 68 %define SEG_TEXT .text align=16 public use32 class=CODE |
| 61 %define SEG_CONST .data align=16 public use32 class=DATA | 69 %define SEG_CONST .data align=16 public use32 class=DATA |
| 62 | 70 |
| 63 %elifdef ELF ; ----(nasm -felf[64] -DELF ...)------------ | 71 %elifdef ELF ; ----(nasm -felf[64] -DELF ...)------------ |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 ; | 300 ; |
| 293 %imacro alignz 1.nolist | 301 %imacro alignz 1.nolist |
| 294 align %1, db 0 ; filling zeros | 302 align %1, db 0 ; filling zeros |
| 295 %endmacro | 303 %endmacro |
| 296 | 304 |
| 297 %ifdef __x86_64__ | 305 %ifdef __x86_64__ |
| 298 | 306 |
| 299 %ifdef WIN64 | 307 %ifdef WIN64 |
| 300 | 308 |
| 301 %imacro collect_args 0 | 309 %imacro collect_args 0 |
| 302 push r10 | |
| 303 push r11 | |
| 304 push r12 | 310 push r12 |
| 305 push r13 | 311 push r13 |
| 306 push r14 | 312 push r14 |
| 307 push r15 | 313 push r15 |
| 308 mov r10, rcx | 314 mov r10, rcx |
| 309 mov r11, rdx | 315 mov r11, rdx |
| 310 mov r12, r8 | 316 mov r12, r8 |
| 311 mov r13, r9 | 317 mov r13, r9 |
| 312 mov r14, [rax+48] | 318 mov r14, [rax+48] |
| 313 mov r15, [rax+56] | 319 mov r15, [rax+56] |
| 314 push rsi | 320 push rsi |
| 315 push rdi | 321 push rdi |
| 316 sub rsp, SIZEOF_XMMWORD | 322 sub rsp, SIZEOF_XMMWORD |
| 317 movlpd XMMWORD [rsp], xmm6 | 323 movlpd XMMWORD [rsp], xmm6 |
| 318 sub rsp, SIZEOF_XMMWORD | 324 sub rsp, SIZEOF_XMMWORD |
| 319 movlpd XMMWORD [rsp], xmm7 | 325 movlpd XMMWORD [rsp], xmm7 |
| 320 %endmacro | 326 %endmacro |
| 321 | 327 |
| 322 %imacro uncollect_args 0 | 328 %imacro uncollect_args 0 |
| 323 movlpd xmm7, XMMWORD [rsp] | 329 movlpd xmm7, XMMWORD [rsp] |
| 324 add rsp, SIZEOF_XMMWORD | 330 add rsp, SIZEOF_XMMWORD |
| 325 movlpd xmm6, XMMWORD [rsp] | 331 movlpd xmm6, XMMWORD [rsp] |
| 326 add rsp, SIZEOF_XMMWORD | 332 add rsp, SIZEOF_XMMWORD |
| 327 pop rdi | 333 pop rdi |
| 328 pop rsi | 334 pop rsi |
| 329 pop r15 | 335 pop r15 |
| 330 pop r14 | 336 pop r14 |
| 331 pop r13 | 337 pop r13 |
| 332 pop r12 | 338 pop r12 |
| 333 pop r11 | |
| 334 pop r10 | |
| 335 %endmacro | 339 %endmacro |
| 336 | 340 |
| 337 %else | 341 %else |
| 338 | 342 |
| 339 %imacro collect_args 0 | 343 %imacro collect_args 0 |
| 340 push r10 | 344 push r10 |
| 341 push r11 | 345 push r11 |
| 342 push r12 | 346 push r12 |
| 343 push r13 | 347 push r13 |
| 344 push r14 | 348 push r14 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 373 %ifdef MACHO ; ----(nasm -fmacho -DMACHO ...)-------- | 377 %ifdef MACHO ; ----(nasm -fmacho -DMACHO ...)-------- |
| 374 %define PRIVATE :private_extern | 378 %define PRIVATE :private_extern |
| 375 %elifdef ELF ; ----(nasm -felf[64] -DELF ...)------------ | 379 %elifdef ELF ; ----(nasm -felf[64] -DELF ...)------------ |
| 376 %define PRIVATE :hidden | 380 %define PRIVATE :hidden |
| 377 %else | 381 %else |
| 378 %define PRIVATE | 382 %define PRIVATE |
| 379 %endif | 383 %endif |
| 380 ; End chromium edits | 384 ; End chromium edits |
| 381 | 385 |
| 382 ; -------------------------------------------------------------------------- | 386 ; -------------------------------------------------------------------------- |
| OLD | NEW |