Index: third_party/lzma_sdk/Asm/x86/7zAsm.asm |
=================================================================== |
--- third_party/lzma_sdk/Asm/x86/7zAsm.asm (revision 0) |
+++ third_party/lzma_sdk/Asm/x86/7zAsm.asm (revision 0) |
@@ -0,0 +1,93 @@ |
+; 7zAsm.asm -- ASM macros |
+; 2009-12-12 : Igor Pavlov : Public domain |
+ |
+MY_ASM_START macro |
+ ifdef x64 |
+ .code |
+ else |
+ .386 |
+ .model flat |
+ _TEXT$00 SEGMENT PARA PUBLIC 'CODE' |
+ endif |
+endm |
+ |
+MY_PROC macro name:req, numParams:req |
+ align 16 |
+ proc_numParams equ numParams |
+ ifdef x64 |
+ proc_name equ name |
+ name PROC |
+ else |
+ proc_fastcall_name equ @CatStr(@,name,@, %numParams * 4) |
+ public proc_fastcall_name |
+ proc_fastcall_name: |
+ endif |
+endm |
+ |
+MY_ENDP macro |
+ ifdef x64 |
+ ret |
+ proc_name ENDP |
+ else |
+ ret (proc_numParams - 2) * 4 |
+ endif |
+endm |
+ |
+ifdef x64 |
+ REG_SIZE equ 8 |
+else |
+ REG_SIZE equ 4 |
+endif |
+ |
+ x0 equ EAX |
+ x1 equ ECX |
+ x2 equ EDX |
+ x3 equ EBX |
+ x4 equ ESP |
+ x5 equ EBP |
+ x6 equ ESI |
+ x7 equ EDI |
+ |
+ x0_L equ AL |
+ x1_L equ CL |
+ x2_L equ DL |
+ x3_L equ BL |
+ |
+ x0_H equ AH |
+ x1_H equ CH |
+ x2_H equ DH |
+ x3_H equ BH |
+ |
+ifdef x64 |
+ r0 equ RAX |
+ r1 equ RCX |
+ r2 equ RDX |
+ r3 equ RBX |
+ r4 equ RSP |
+ r5 equ RBP |
+ r6 equ RSI |
+ r7 equ RDI |
+else |
+ r0 equ x0 |
+ r1 equ x1 |
+ r2 equ x2 |
+ r3 equ x3 |
+ r4 equ x4 |
+ r5 equ x5 |
+ r6 equ x6 |
+ r7 equ x7 |
+endif |
+ |
+MY_PUSH_4_REGS macro |
+ push r3 |
+ push r5 |
+ push r6 |
+ push r7 |
+endm |
+ |
+MY_POP_4_REGS macro |
+ pop r7 |
+ pop r6 |
+ pop r5 |
+ pop r3 |
+endm |
Property changes on: third_party\lzma_sdk\Asm\x86\7zAsm.asm |
___________________________________________________________________ |
Added: svn:executable |
+ * |