History

sync yasm macros from x264

Originally committed as revision 24406 to svn://svn.ffmpeg.org/ffmpeg/trunk

Loren Merritt committed 16 years ago

Commit 532e7691 parent 8731dbd1 file · +23 −12Browse files

Unified · Split

libavcodec/x86/x86inc.asm+23−12
@@ -271,13 +271,21 @@ DECLARE_REG 6, rax, eax, ax, al, [rsp + stack_offset + 56] · 270 unmodified lines
271 ASSERT %2 >= %1271 ASSERT %2 >= %1
272 %assign regs_used %2272 %assign regs_used %2
273 ASSERT regs_used <= 7273 ASSERT regs_used <= 7
274 %assign xmm_regs_used %3
275 ASSERT xmm_regs_used <= 16
276 %if regs_used > 4274 %if regs_used > 4
277 push r4275 push r4
278 push r5276 push r5
279 %assign stack_offset stack_offset+16277 %assign stack_offset stack_offset+16
280 %endif278 %endif
279 WIN64_SPILL_XMM %3
280 LOAD_IF_USED 4, %1
281 LOAD_IF_USED 5, %1
282 LOAD_IF_USED 6, %1
283 DEFINE_ARGS %4
284%endmacro
285
286%macro WIN64_SPILL_XMM 1
287 %assign xmm_regs_used %1
288 ASSERT xmm_regs_used <= 16
281 %if xmm_regs_used > 6289 %if xmm_regs_used > 6
282 sub rsp, (xmm_regs_used-6)*16+16290 sub rsp, (xmm_regs_used-6)*16+16
283 %assign stack_offset stack_offset+(xmm_regs_used-6)*16+16291 %assign stack_offset stack_offset+(xmm_regs_used-6)*16+16
@@ -287,13 +295,9 @@ DECLARE_REG 6, rax, eax, ax, al, [rsp + stack_offset + 56] · 3 unmodified lines
287 movdqa [rsp + (%%i-6)*16+8], xmm %+ %%i295 movdqa [rsp + (%%i-6)*16+8], xmm %+ %%i
288 %endrep296 %endrep
289 %endif297 %endif
290 LOAD_IF_USED 4, %1
291 LOAD_IF_USED 5, %1
292 LOAD_IF_USED 6, %1
293 DEFINE_ARGS %4
294%endmacro298%endmacro
295 299
296%macro RESTORE_XMM_INTERNAL 1300%macro WIN64_RESTORE_XMM_INTERNAL 1
297 %if xmm_regs_used > 6301 %if xmm_regs_used > 6
298 %assign %%i xmm_regs_used302 %assign %%i xmm_regs_used
299 %rep (xmm_regs_used-6)303 %rep (xmm_regs_used-6)
@@ -304,14 +308,14 @@ DECLARE_REG 6, rax, eax, ax, al, [rsp + stack_offset + 56] · 4 unmodified lines
304 %endif308 %endif
305%endmacro309%endmacro
306 310
307%macro RESTORE_XMM 1311%macro WIN64_RESTORE_XMM 1
308 RESTORE_XMM_INTERNAL %1312 WIN64_RESTORE_XMM_INTERNAL %1
309 %assign stack_offset stack_offset-(xmm_regs_used-6)*16+16313 %assign stack_offset stack_offset-(xmm_regs_used-6)*16+16
310 %assign xmm_regs_used 0314 %assign xmm_regs_used 0
311%endmacro315%endmacro
312 316
313%macro RET 0317%macro RET 0
314 RESTORE_XMM_INTERNAL rsp318 WIN64_RESTORE_XMM_INTERNAL rsp
315 %if regs_used > 4319 %if regs_used > 4
316 pop r5320 pop r5
317 pop r4321 pop r4
@@ -428,6 +432,13 @@ DECLARE_REG 6, ebp, ebp, bp, null, [esp + stack_offset + 28] · 110 unmodified lines
428 432
429%endif ;======================================================================433%endif ;======================================================================
430 434
435%ifndef WIN64
436%macro WIN64_SPILL_XMM 1
437%endmacro
438%macro WIN64_RESTORE_XMM 1
439%endmacro
440%endif
441
431 442
432 443
433;=============================================================================444;=============================================================================
@@ -494,7 +505,7 @@ SECTION .note.GNU-stack noalloc noexec nowrite progbits · 60 unmodified lines
494 %define mova movq505 %define mova movq
495 %define movu movq506 %define movu movq
496 %define movh movd507 %define movh movd
497 %define movnt movntq508 %define movnta movntq
498 %assign %%i 0509 %assign %%i 0
499 %rep 8510 %rep 8
500 CAT_XDEFINE m, %%i, mm %+ %%i511 CAT_XDEFINE m, %%i, mm %+ %%i
@@ -518,7 +529,7 @@ SECTION .note.GNU-stack noalloc noexec nowrite progbits · 17 unmodified lines
518 %define mova movdqa529 %define mova movdqa
519 %define movu movdqu530 %define movu movdqu
520 %define movh movq531 %define movh movq
521 %define movnt movntdq532 %define movnta movntdq
522 %assign %%i 0533 %assign %%i 0
523 %rep num_mmregs534 %rep num_mmregs
524 CAT_XDEFINE m, %%i, xmm %+ %%i535 CAT_XDEFINE m, %%i, xmm %+ %%i

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t