Mercurial > libavcodec.hg
annotate arm/asm.S @ 10893:2aafcafbe1f0 libavcodec
Replace cabac checks in inline functions from h264.h with constants.
No benchmark because its just replacing variables with litteral constants
(so no risk for slowdown outside gcc silliness) and i need sleep.
author | michael |
---|---|
date | Sat, 16 Jan 2010 05:41:33 +0000 |
parents | c44205b868dc |
children | 361a5fcb4393 |
rev | line source |
---|---|
8068 | 1 /* |
2 * Copyright (c) 2008 Mans Rullgard <mans@mansr.com> | |
3 * | |
4 * This file is part of FFmpeg. | |
5 * | |
6 * FFmpeg is free software; you can redistribute it and/or | |
7 * modify it under the terms of the GNU Lesser General Public | |
8 * License as published by the Free Software Foundation; either | |
9 * version 2.1 of the License, or (at your option) any later version. | |
10 * | |
11 * FFmpeg is distributed in the hope that it will be useful, | |
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 * Lesser General Public License for more details. | |
15 * | |
16 * You should have received a copy of the GNU Lesser General Public | |
17 * License along with FFmpeg; if not, write to the Free Software | |
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
19 */ | |
20 | |
8507
779a9c93bf61
ARM: work around linker bug with movw/movt relocations in shared libs
mru
parents:
8359
diff
changeset
|
21 #include "config.h" |
779a9c93bf61
ARM: work around linker bug with movw/movt relocations in shared libs
mru
parents:
8359
diff
changeset
|
22 |
9991
c50957bfd553
ARM: cleaner selection of ELF-spefic assembler directives
mru
parents:
9989
diff
changeset
|
23 #ifdef __ELF__ |
c50957bfd553
ARM: cleaner selection of ELF-spefic assembler directives
mru
parents:
9989
diff
changeset
|
24 # define ELF |
c50957bfd553
ARM: cleaner selection of ELF-spefic assembler directives
mru
parents:
9989
diff
changeset
|
25 #else |
c50957bfd553
ARM: cleaner selection of ELF-spefic assembler directives
mru
parents:
9989
diff
changeset
|
26 # define ELF @ |
c50957bfd553
ARM: cleaner selection of ELF-spefic assembler directives
mru
parents:
9989
diff
changeset
|
27 #endif |
c50957bfd553
ARM: cleaner selection of ELF-spefic assembler directives
mru
parents:
9989
diff
changeset
|
28 |
8068 | 29 .macro require8, val=1 |
9991
c50957bfd553
ARM: cleaner selection of ELF-spefic assembler directives
mru
parents:
9989
diff
changeset
|
30 ELF .eabi_attribute 24, \val |
8068 | 31 .endm |
32 | |
33 .macro preserve8, val=1 | |
9991
c50957bfd553
ARM: cleaner selection of ELF-spefic assembler directives
mru
parents:
9989
diff
changeset
|
34 ELF .eabi_attribute 25, \val |
8068 | 35 .endm |
36 | |
37 .macro function name, export=0 | |
38 .if \export | |
10346 | 39 .global EXTERN_ASM\name |
40 EXTERN_ASM\name: | |
8068 | 41 .endif |
9991
c50957bfd553
ARM: cleaner selection of ELF-spefic assembler directives
mru
parents:
9989
diff
changeset
|
42 ELF .type \name, %function |
8068 | 43 .func \name |
44 \name: | |
45 .endm | |
8507
779a9c93bf61
ARM: work around linker bug with movw/movt relocations in shared libs
mru
parents:
8359
diff
changeset
|
46 |
779a9c93bf61
ARM: work around linker bug with movw/movt relocations in shared libs
mru
parents:
8359
diff
changeset
|
47 .macro movrel rd, val |
10384
c44205b868dc
ARM: simplify movrel definition as CONFIG_PIC is now set for shared libs
mru
parents:
10346
diff
changeset
|
48 #if HAVE_ARMV6T2 && !CONFIG_PIC |
8507
779a9c93bf61
ARM: work around linker bug with movw/movt relocations in shared libs
mru
parents:
8359
diff
changeset
|
49 movw \rd, #:lower16:\val |
779a9c93bf61
ARM: work around linker bug with movw/movt relocations in shared libs
mru
parents:
8359
diff
changeset
|
50 movt \rd, #:upper16:\val |
779a9c93bf61
ARM: work around linker bug with movw/movt relocations in shared libs
mru
parents:
8359
diff
changeset
|
51 #else |
779a9c93bf61
ARM: work around linker bug with movw/movt relocations in shared libs
mru
parents:
8359
diff
changeset
|
52 ldr \rd, =\val |
779a9c93bf61
ARM: work around linker bug with movw/movt relocations in shared libs
mru
parents:
8359
diff
changeset
|
53 #endif |
779a9c93bf61
ARM: work around linker bug with movw/movt relocations in shared libs
mru
parents:
8359
diff
changeset
|
54 .endm |
9968 | 55 |
56 #if HAVE_VFP_ARGS | |
57 .eabi_attribute 28, 1 | |
58 # define VFP | |
59 # define NOVFP @ | |
60 #else | |
61 # define VFP @ | |
62 # define NOVFP | |
63 #endif | |
10346 | 64 |
65 #define GLUE(a, b) a ## b | |
66 #define JOIN(a, b) GLUE(a, b) | |
67 #define X(s) JOIN(EXTERN_ASM, s) |