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

Side by Side Diff: source/libvpx/vpx_ports/x86_abi_support.asm

Issue 3417017: Update libvpx sources to v0.9.2-35-ga8a38bc. ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 10 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « source/libvpx/vpx_ports/x86.h ('k') | source/libvpx/vpx_scale/arm/armv4/gen_scalers_armv4.asm » ('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 ; Copyright (c) 2010 The VP8 project authors. All Rights Reserved. 2 ; Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 ; 3 ;
4 ; Use of this source code is governed by a BSD-style license 4 ; Use of this source code is governed by a BSD-style license
5 ; that can be found in the LICENSE file in the root of the source 5 ; that can be found in the LICENSE file in the root of the source
6 ; tree. An additional intellectual property rights grant can be found 6 ; tree. An additional intellectual property rights grant can be found
7 ; in the file PATENTS. All contributing project authors may 7 ; in the file PATENTS. All contributing project authors may
8 ; be found in the AUTHORS file in the root of the source tree. 8 ; be found in the AUTHORS file in the root of the source tree.
9 ; 9 ;
10 10
11 11
12 %include "vpx_config.asm" 12 %include "vpx_config.asm"
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 83
84 ; ALIGN_STACK <alignment> <register> 84 ; ALIGN_STACK <alignment> <register>
85 ; This macro aligns the stack to the given alignment (in bytes). The stack 85 ; This macro aligns the stack to the given alignment (in bytes). The stack
86 ; is left such that the previous value of the stack pointer is the first 86 ; is left such that the previous value of the stack pointer is the first
87 ; argument on the stack (ie, the inverse of this macro is 'pop rsp.') 87 ; argument on the stack (ie, the inverse of this macro is 'pop rsp.')
88 ; This macro uses one temporary register, which is not preserved, and thus 88 ; This macro uses one temporary register, which is not preserved, and thus
89 ; must be specified as an argument. 89 ; must be specified as an argument.
90 %macro ALIGN_STACK 2 90 %macro ALIGN_STACK 2
91 mov %2, rsp 91 mov %2, rsp
92 and rsp, -%1 92 and rsp, -%1
93 sub rsp, %1 - REG_SZ_BYTES 93 lea rsp, [rsp - (%1 - REG_SZ_BYTES)]
94 push %2 94 push %2
95 %endmacro 95 %endmacro
96 96
97 97
98 ; 98 ;
99 ; The Microsoft assembler tries to impose a certain amount of type safety in 99 ; The Microsoft assembler tries to impose a certain amount of type safety in
100 ; its register usage. YASM doesn't recognize these directives, so we just 100 ; its register usage. YASM doesn't recognize these directives, so we just
101 ; %define them away to maintain as much compatibility as possible with the 101 ; %define them away to maintain as much compatibility as possible with the
102 ; original inline assembler we're porting from. 102 ; original inline assembler we're porting from.
103 ; 103 ;
104 %idefine PTR 104 %idefine PTR
105 %idefine XMMWORD 105 %idefine XMMWORD
106 %idefine MMWORD 106 %idefine MMWORD
107 107
108
109 ; PIC macros 108 ; PIC macros
110 ; 109 ;
111 %if ABI_IS_32BIT 110 %if ABI_IS_32BIT
112 %if CONFIG_PIC=1 111 %if CONFIG_PIC=1
113 %ifidn __OUTPUT_FORMAT__,elf32 112 %ifidn __OUTPUT_FORMAT__,elf32
114 %define WRT_PLT wrt ..plt 113 %define WRT_PLT wrt ..plt
115 %macro GET_GOT 1 114 %macro GET_GOT 1
116 extern _GLOBAL_OFFSET_TABLE_ 115 extern _GLOBAL_OFFSET_TABLE_
117 push %1 116 push %1
118 call %%get_got 117 call %%get_got
118 %%sub_offset:
119 jmp %%exitGG
119 %%get_got: 120 %%get_got:
120 pop %1 121 mov %1, [esp]
121 add %1, _GLOBAL_OFFSET_TABLE_ + $$ - %%get_got wrt ..gotpc 122 add %1, _GLOBAL_OFFSET_TABLE_ + $$ - %%sub_offset wrt ..gotpc
123 ret
124 %%exitGG:
122 %undef GLOBAL 125 %undef GLOBAL
123 %define GLOBAL + %1 wrt ..gotoff 126 %define GLOBAL + %1 wrt ..gotoff
124 %undef RESTORE_GOT 127 %undef RESTORE_GOT
125 %define RESTORE_GOT pop %1 128 %define RESTORE_GOT pop %1
126 %endmacro 129 %endmacro
127 %elifidn __OUTPUT_FORMAT__,macho32 130 %elifidn __OUTPUT_FORMAT__,macho32
128 %macro GET_GOT 1 131 %macro GET_GOT 1
129 push %1 132 push %1
130 call %%get_got 133 call %%get_got
134 %%sub_offset:
135 jmp %%exitGG
131 %%get_got: 136 %%get_got:
132 pop %1 137 mov %1, [esp]
133 add %1, fake_got - %%get_got 138 add %1, fake_got - %%sub_offset
139 ret
140 %%exitGG:
134 %undef GLOBAL 141 %undef GLOBAL
135 %define GLOBAL + %1 - fake_got 142 %define GLOBAL + %1 - fake_got
136 %undef RESTORE_GOT 143 %undef RESTORE_GOT
137 %define RESTORE_GOT pop %1 144 %define RESTORE_GOT pop %1
138 %endmacro 145 %endmacro
139 %endif 146 %endif
140 %endif 147 %endif
141 %define HIDDEN_DATA(x) x 148 %define HIDDEN_DATA(x) x
142 %else 149 %else
143 %macro GET_GOT 1 150 %macro GET_GOT 1
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 261
255 ; Tell GNU ld that we don't require an executable stack. 262 ; Tell GNU ld that we don't require an executable stack.
256 %ifidn __OUTPUT_FORMAT__,elf32 263 %ifidn __OUTPUT_FORMAT__,elf32
257 section .note.GNU-stack noalloc noexec nowrite progbits 264 section .note.GNU-stack noalloc noexec nowrite progbits
258 section .text 265 section .text
259 %elifidn __OUTPUT_FORMAT__,elf64 266 %elifidn __OUTPUT_FORMAT__,elf64
260 section .note.GNU-stack noalloc noexec nowrite progbits 267 section .note.GNU-stack noalloc noexec nowrite progbits
261 section .text 268 section .text
262 %endif 269 %endif
263 270
OLDNEW
« no previous file with comments | « source/libvpx/vpx_ports/x86.h ('k') | source/libvpx/vpx_scale/arm/armv4/gen_scalers_armv4.asm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698