OLD | NEW |
1 ;***************************************************************************** | 1 ;***************************************************************************** |
2 ;* x86inc.asm: x264asm abstraction layer | 2 ;* x86inc.asm: x264asm abstraction layer |
3 ;***************************************************************************** | 3 ;***************************************************************************** |
4 ;* Copyright (C) 2005-2012 x264 project | 4 ;* Copyright (C) 2005-2012 x264 project |
5 ;* | 5 ;* |
6 ;* Authors: Loren Merritt <lorenm@u.washington.edu> | 6 ;* Authors: Loren Merritt <lorenm@u.washington.edu> |
7 ;* Anton Mitrofanov <BugMaster@narod.ru> | 7 ;* Anton Mitrofanov <BugMaster@narod.ru> |
8 ;* Jason Garrett-Glaser <darkshikari@gmail.com> | 8 ;* Jason Garrett-Glaser <darkshikari@gmail.com> |
9 ;* Henrik Gramner <hengar-6@student.ltu.se> | 9 ;* Henrik Gramner <hengar-6@student.ltu.se> |
10 ;* | 10 ;* |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 ; the code contains a few textrels, so we'll skip that complexity. | 107 ; the code contains a few textrels, so we'll skip that complexity. |
108 %undef PIC | 108 %undef PIC |
109 %elif CONFIG_PIC | 109 %elif CONFIG_PIC |
110 %define PIC | 110 %define PIC |
111 %endif | 111 %endif |
112 %ifdef PIC | 112 %ifdef PIC |
113 default rel | 113 default rel |
114 %endif | 114 %endif |
115 | 115 |
116 ; Always use long nops (reduces 0x90 spam in disassembly on x86_32) | 116 ; Always use long nops (reduces 0x90 spam in disassembly on x86_32) |
| 117 %ifndef __NASM_VER__ |
117 CPU amdnop | 118 CPU amdnop |
| 119 %else |
| 120 %use smartalign |
| 121 ALIGNMODE k7 |
| 122 %endif |
118 | 123 |
119 ; Macros to eliminate most code duplication between x86_32 and x86_64: | 124 ; Macros to eliminate most code duplication between x86_32 and x86_64: |
120 ; Currently this works only for leaf functions which load all their arguments | 125 ; Currently this works only for leaf functions which load all their arguments |
121 ; into registers at the start, and make no other use of the stack. Luckily that | 126 ; into registers at the start, and make no other use of the stack. Luckily that |
122 ; covers most of x264's asm. | 127 ; covers most of x264's asm. |
123 | 128 |
124 ; PROLOGUE: | 129 ; PROLOGUE: |
125 ; %1 = number of arguments. loads them from stack if needed. | 130 ; %1 = number of arguments. loads them from stack if needed. |
126 ; %2 = number of registers used. pushes callee-saved regs if needed. | 131 ; %2 = number of registers used. pushes callee-saved regs if needed. |
127 ; %3 = number of xmm registers used. pushes callee-saved xmm regs if needed. | 132 ; %3 = number of xmm registers used. pushes callee-saved xmm regs if needed. |
(...skipping 983 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1111 %else | 1116 %else |
1112 %6 %1, %2, %3 | 1117 %6 %1, %2, %3 |
1113 %7 %1, %4 | 1118 %7 %1, %4 |
1114 %endif | 1119 %endif |
1115 %endmacro | 1120 %endmacro |
1116 %endmacro | 1121 %endmacro |
1117 | 1122 |
1118 FMA_INSTR pmacsdd, pmulld, paddd | 1123 FMA_INSTR pmacsdd, pmulld, paddd |
1119 FMA_INSTR pmacsww, pmullw, paddw | 1124 FMA_INSTR pmacsww, pmullw, paddw |
1120 FMA_INSTR pmadcswd, pmaddwd, paddd | 1125 FMA_INSTR pmadcswd, pmaddwd, paddd |
OLD | NEW |