OLD | NEW |
1 ; | 1 ; |
2 ; Copyright (c) 2010 The WebM 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 |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 %ifidn __OUTPUT_FORMAT__,elf32 | 85 %ifidn __OUTPUT_FORMAT__,elf32 |
86 %define sym(x) x | 86 %define sym(x) x |
87 %elifidn __OUTPUT_FORMAT__,elf64 | 87 %elifidn __OUTPUT_FORMAT__,elf64 |
88 %define sym(x) x | 88 %define sym(x) x |
89 %elifidn __OUTPUT_FORMAT__,x64 | 89 %elifidn __OUTPUT_FORMAT__,x64 |
90 %define sym(x) x | 90 %define sym(x) x |
91 %else | 91 %else |
92 %define sym(x) _ %+ x | 92 %define sym(x) _ %+ x |
93 %endif | 93 %endif |
94 | 94 |
| 95 |
| 96 ; PRIVATE |
| 97 ; Macro for the attribute to hide a global symbol for the target ABI. |
| 98 ; |
| 99 ; Chromium doesn't like exported global symbols due to symbol clashing with |
| 100 ; plugins among other things. |
| 101 ; |
| 102 ; Requires Chromium's patched copy of yasm: |
| 103 ; http://src.chromium.org/viewvc/chrome?view=rev&revision=73761 |
| 104 ; http://www.tortall.net/projects/yasm/ticket/236 |
| 105 ; |
| 106 %ifidn __OUTPUT_FORMAT__,elf32 |
| 107 %define PRIVATE :hidden |
| 108 %elifidn __OUTPUT_FORMAT__,elf64 |
| 109 %define PRIVATE :hidden |
| 110 %elifidn __OUTPUT_FORMAT__,x64 |
| 111 %define PRIVATE |
| 112 %else |
| 113 %define PRIVATE :private_extern |
| 114 %endif |
| 115 |
| 116 |
95 ; arg() | 117 ; arg() |
96 ; Return the address specification of the given argument | 118 ; Return the address specification of the given argument |
97 ; | 119 ; |
98 %if ABI_IS_32BIT | 120 %if ABI_IS_32BIT |
99 %define arg(x) [ebp+8+4*x] | 121 %define arg(x) [ebp+8+4*x] |
100 %else | 122 %else |
101 ; 64 bit ABI passes arguments in registers. This is a workaround to get up | 123 ; 64 bit ABI passes arguments in registers. This is a workaround to get up |
102 ; and running quickly. Relies on SHADOW_ARGS_TO_STACK | 124 ; and running quickly. Relies on SHADOW_ARGS_TO_STACK |
103 %ifidn __OUTPUT_FORMAT__,x64 | 125 %ifidn __OUTPUT_FORMAT__,x64 |
104 %define arg(x) [rbp+16+8*x] | 126 %define arg(x) [rbp+16+8*x] |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 | 314 |
293 ; Tell GNU ld that we don't require an executable stack. | 315 ; Tell GNU ld that we don't require an executable stack. |
294 %ifidn __OUTPUT_FORMAT__,elf32 | 316 %ifidn __OUTPUT_FORMAT__,elf32 |
295 section .note.GNU-stack noalloc noexec nowrite progbits | 317 section .note.GNU-stack noalloc noexec nowrite progbits |
296 section .text | 318 section .text |
297 %elifidn __OUTPUT_FORMAT__,elf64 | 319 %elifidn __OUTPUT_FORMAT__,elf64 |
298 section .note.GNU-stack noalloc noexec nowrite progbits | 320 section .note.GNU-stack noalloc noexec nowrite progbits |
299 section .text | 321 section .text |
300 %endif | 322 %endif |
301 | 323 |
OLD | NEW |