summaryrefslogtreecommitdiff
path: root/libavutil/arm/asm.S
Commit message (Collapse)AuthorAge
* Merge commit '41cf3e3b1ca375962951fde1b90a03b16197d205'James Almer2019-02-20
|\ | | | | | | | | | | | | * commit '41cf3e3b1ca375962951fde1b90a03b16197d205': arm: Create proper .rdata sections for COFF Merged-by: James Almer <jamrial@gmail.com>
| * arm: Create proper .rdata sections for COFFMartin Storsjö2019-01-25
| | | | | | | | | | | | | | | | | | | | | | | | As .rodata isn't one of the default created sections for COFF, it was created as a read-write data section. By using the default .rdata section name for COFF, it automatically becomes a read-only data section. The existing ".section .rodata" works as intended for ELF though. This is based on an original patch and diagnose by Tom Tan <Tom.Tan@microsoft.com>. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '5584abf69d83169a010aca404cd1cf95c23ad9ef'James Almer2019-02-20
|\| | | | | | | | | | | | | * commit '5584abf69d83169a010aca404cd1cf95c23ad9ef': arm: Emit .thumb_func directives Merged-by: James Almer <jamrial@gmail.com>
| * arm: Emit .thumb_func directivesMartin Storsjö2018-10-12
| | | | | | | | | | | | | | | | | | | | | | Prior to Xcode 9.3, the clang built-in assembler didn't support altmacro, and gas-preprocessor was used for assembling for arm/darwin. For thumb functions, gas-preprocessor took care of adding the .thumb_func directives, but when now being able to assemble without gas-preprocessor, we need to add these directives ourselves. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '3a7b4ae62c798edbd82bcd8fef863c74ed2acd4a'James Almer2018-03-30
|\| | | | | | | | | | | | | * commit '3a7b4ae62c798edbd82bcd8fef863c74ed2acd4a': arm: Produce .const_data instead of .section .rodata for Mach-O Merged-by: James Almer <jamrial@gmail.com>
| * arm: Produce .const_data instead of .section .rodata for Mach-OMartin Storsjö2018-03-30
| | | | | | | | | | | | | | | | | | | | This is the same combination of .section directives as used in aarch64/asm.S. Since Xcode 9.3, the bundled clang supports altmacro and doesn't require using gas-preprocessor any longer. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '59cee42d7d22530e66a155305389e29679b11f78'James Almer2017-10-30
|\| | | | | | | | | | | | | * commit '59cee42d7d22530e66a155305389e29679b11f78': arm: Check for the .arch directive in configure Merged-by: James Almer <jamrial@gmail.com>
| * arm: Check for the .arch directive in configureMartin Storsjö2017-05-08
| | | | | | | | | | | | | | | | | | | | | | | | When targeting windows, the .arch directive isn't available. So far, when building for windows, we've always used gas-preprocessor, both when using msvc's armasm and when using clang. Lately, clang/llvm has implemented the last missing piece (altmacro support) for building our assembly without gas-preprocessor. This means that we now build for arm/windows with clang without any extra compatibility layer. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '6a1ea4ec932f4fc9fdc00ec51ee070b298ddb35f'James Almer2017-04-04
|\| | | | | | | | | | | | | * commit '6a1ea4ec932f4fc9fdc00ec51ee070b298ddb35f': arm: warn/error on movrelx usage problematic with PIC on ELF Merged-by: James Almer <jamrial@gmail.com>
| * arm: warn/error on movrelx usage problematic with PIC on ELFJanne Grunau2016-11-24
| | | | | | | | | | | | The warning has false positives but our asm does not trigger it. For new code false positives can only be avoided by changing the register allocation.
| * arm: Clear the gp register alias at the end of functionsMartin Storsjö2016-11-10
| | | | | | | | | | | | | | | | | | | | | | We reset .Lpic_gp to zero at the start of each function, which means that the logic within movrelx for clearing gp when necessary will be missed. This fixes using movrelx in different functions with a different helper register. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '6f9e34baea4f6f484392e4e67f606a0835d07b73'Clément Bœsch2017-02-02
|\| | | | | | | | | | | | | * commit '6f9e34baea4f6f484392e4e67f606a0835d07b73': arm: Check for support for the .fpu directive Merged-by: Clément Bœsch <cboesch@gopro.com>
| * arm: Check for support for the .fpu directiveMartin Storsjö2016-07-21
| | | | | | | | | | | | | | When targeting COFF (windows), clang doesn't support this directive (while binutils supports it for all targets). Signed-off-by: Martin Storsjö <martin@martin.st>
* | arm: Clear the gp register alias at the end of functionsMartin Storsjö2016-11-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We reset .Lpic_gp to zero at the start of each function, which means that the logic within movrelx for clearing gp when necessary will be missed. This fixes using movrelx in different functions with a different helper register. This is cherry-picked from libav commit 824e8c284054f323f854892d1b4739239ed1fdc7. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* | Merge commit 'dcae2e32f7d8a1ca5fb8c1e4aa81313be854dd73'Michael Niedermayer2015-03-07
|\| | | | | | | | | | | | | * commit 'dcae2e32f7d8a1ca5fb8c1e4aa81313be854dd73': arm: Suppress tags about used cpu arch and extensions Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: Suppress tags about used cpu arch and extensionsMartin Storsjö2015-03-07
| | | | | | | | | | | | | | | | | | | | When all the codepaths using manually set .arch/.fpu code is behind runtime detection, the elf attributes should be suppressed. This allows tools to know that the final built binary doesn't strictly require these extensions. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'f963f80399deb1a2b44c1bac3af7123e8a0c9e46'Michael Niedermayer2014-12-09
|\| | | | | | | | | | | | | | | | | | | * commit 'f963f80399deb1a2b44c1bac3af7123e8a0c9e46': arm: Use .data.rel.ro for const data with relocations Conflicts: configure Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: Use .data.rel.ro for const data with relocationsMartin Storsjö2014-12-09
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'd5a55981986ac5d1a31aef3a8d16eaff8534a412'Michael Niedermayer2014-06-04
|\| | | | | | | | | | | | | * commit 'd5a55981986ac5d1a31aef3a8d16eaff8534a412': build: check if AS supports the '.func' directive Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * build: check if AS supports the '.func' directiveJanne Grunau2014-06-03
| | | | | | | | | | Not supported by Clang's integrated assembler. Since it just adds debug information it can safely omitted.
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2014-03-05
|\| | | | | | | | | | | | | * qatar/master: arm: hpeldsp: prevent overreads in armv6 asm Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: hpeldsp: prevent overreads in armv6 asmJanne Grunau2014-03-05
| | | | | | | | | | | | | | Based on a patch by Russel King <rmk+libav@arm.linux.org.uk> Bug-Id: 646 CC: libav-stable@libav.org
* | Merge commit '543156d7518f5e5d731123da066d86278f9fa492'Michael Niedermayer2014-02-19
|\| | | | | | | | | | | | | * commit '543156d7518f5e5d731123da066d86278f9fa492': arm: Mark the stack as non-executable Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: Mark the stack as non-executableMartin Storsjö2014-02-19
| | | | | | | | | | | | | | If linking in an object file without this attribute set, the linker will assume that an executable stack might be needed. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'e3fec3f095ab5ea08ee662942d98526aaf5e3635'Michael Niedermayer2014-02-08
|\| | | | | | | | | | | | | * commit 'e3fec3f095ab5ea08ee662942d98526aaf5e3635': arm: Add EXTERN_ASM to the .func and .type declarations for exported symbols Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: Add EXTERN_ASM to the .func and .type declarations for exported symbolsMartin Storsjö2014-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes the generated assembly more internally consistent, avoiding declaring two labels for the same function (for cases where EXTERN_ASM is empty) and not declaring a separate unprefixed label in other cases. This also makes sure the .func and .type delcarations have the same prefix. They have previously not been used on the platforms that have prefixed symbols on arm (iOS), but gas-preprocessor has recently started using the .func declarations for adding .thumb_func declarations for such functions. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '5dae4872357613a0b51120b54a4c5221e0ec3f69'Michael Niedermayer2014-01-08
|\| | | | | | | | | | | | | * commit '5dae4872357613a0b51120b54a4c5221e0ec3f69': arm: Allow overriding the alignment set in the function macro Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: Allow overriding the alignment set in the function macroMartin Storsjö2014-01-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function macro always sets .align 2 before declaring the function label (since 5c5e1ea3) and always sets the section to .text (since 278caa6a). The .align 5 before certain functions, added in fc252eba, were added before .text and .align were added to the function macro and thus became useless/unused when the function macro got them. This restores the original intention, to align the loop entry points. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-05-27
|\| | | | | | | | | | | | | | | * qatar/master: arm: Only output eabi attributes if building for ELF fix scalarproduct_and_madd_int16_altivec() for orders > 16 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: Only output eabi attributes if building for ELFMartin Storsjö2013-05-27
| | | | | | | | | | | | | | | | This matches the other eabi attribute in the same file. This is required in order to build for arm/hardfloat with other object file formats than ELF. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'b326755989b346d0d935e0628e8865f9b2951c30'Michael Niedermayer2012-12-08
|\| | | | | | | | | | | | | * commit 'b326755989b346d0d935e0628e8865f9b2951c30': arm: rename ARMVFP config symbol to VFP Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: rename ARMVFP config symbol to VFPMans Rullgard2012-12-07
| | | | | | | | | | | | | | This is consistent with usual ARM nomenclature as well as with the VFPV3 and NEON symbols which both lack the ARM prefix. Signed-off-by: Mans Rullgard <mans@mansr.com>
* | Merge commit '637606de2d2e0af0a9fa2f23f943765d7d7c5cd5'Michael Niedermayer2012-12-08
|\| | | | | | | | | | | | | | | | | | | | | | | * commit '637606de2d2e0af0a9fa2f23f943765d7d7c5cd5': configure: arm: make _inline arch ext symbols depend on inline_asm arm: use HAVE*_INLINE/EXTERNAL macros for conditional compilation Conflicts: configure libavcodec/arm/dca.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: use HAVE*_INLINE/EXTERNAL macros for conditional compilationMans Rullgard2012-12-07
| | | | | | | | | | | | These macros reflect the actual capabilities required here. Signed-off-by: Mans Rullgard <mans@mansr.com>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-10-03
|\| | | | | | | | | | | | | | | | | | | * qatar/master: ARM: use numeric ID for Tag_ABI_align_preserved segment: Pass the interrupt callback on to the chained AVFormatContext, too ARM: bswap: drop armcc version of av_bswap16() ARM: set Tag_ABI_align_preserved in all asm files Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ARM: use numeric ID for Tag_ABI_align_preservedMans Rullgard2012-10-03
| | | | | | | | | | | | Some old assemblers still in use do not support named tags. Signed-off-by: Mans Rullgard <mans@mansr.com>
| * ARM: set Tag_ABI_align_preserved in all asm filesMans Rullgard2012-10-02
| | | | | | | | | | | | | | | | All our ARM asm preserves alignment so setting this attribute in a common location is simpler. This removes numerous warnings when linking with armcc. Signed-off-by: Mans Rullgard <mans@mansr.com>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-10-02
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: ARM: fix Thumb PIC on Apple nut: add do {} while (0) to GET_V tiffenc: Check av_malloc() results. tiffenc: Simplify pixel format setup using AVPixFmtDescriptor. Use atexit() instead of defining a custom exit_program() interface. msvc: Fix detection of VFW & Avisynth required libs Conflicts: ffmpeg.c ffmpeg_opt.c ffplay.c ffprobe.c ffserver.c libavcodec/tiffenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ARM: fix Thumb PIC on AppleMans Rullgard2012-10-02
| | | | | | | | | | | | | | LDR with register offset and PC as base register is not available in the Thumb instruction set so the addition must be done separately. Signed-off-by: Mans Rullgard <mans@mansr.com>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-09-21
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: libx264: add forgotten ; matroskadec: fix a sanity check. matroskadec: only return corrupt packets that actually contain data lavf: zero data/size of the packet passed to read_packet(). ARM: use 2-operand syntax for ADD Rd, PC in Apple PIC code ARM: align PIC offset pools to 4 bytes ARM: swap source operands in some add instructions configure: update tms470 detection for latest version lavf probe: prevent codec probe with no data at all seen motion_est: fix use of inline on extern functions Conflicts: libavcodec/motion_est_template.c libavformat/matroskadec.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ARM: use 2-operand syntax for ADD Rd, PC in Apple PIC codeMans Rullgard2012-09-21
| | | | | | | | | | | | | | The Apple assembler refuses to assemble the 3-operand form in Thumb2 even though it is valid syntax. Signed-off-by: Mans Rullgard <mans@mansr.com>
| * ARM: align PIC offset pools to 4 bytesMans Rullgard2012-09-21
| | | | | | | | | | | | | | | | | | When building Thumb2 code, the end of a function, where the PIC offsets are placed, need not be aligned. Although the values are only accessed with instructions allowing unaligned addresses, keeping them aligned is preferable. Signed-off-by: Mans Rullgard <mans@mansr.com>
| * ARM: swap source operands in some add instructionsMans Rullgard2012-09-20
| | | | | | | | | | | | This allows using a 16-bit opcode when generating Thumb2 code. Signed-off-by: Mans Rullgard <mans@mansr.com>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-09-16
|\| | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: mpegvideo: drop unnecessary arguments to hpel_motion() mpegvideo: drop 'inline' from some functions nellymoserdec: drop support for s16 output. bmpdec: only initialize palette for pal8. build: Properly remove object files while cleaning flacdsp: arm optimised lpc filter compat/vsnprintf: return number of bytes required on truncation. Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * flacdsp: arm optimised lpc filterMans Rullgard2012-09-15
| |
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-07-01
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: opt/eval: Include mathematics.h for NAN/INFINITY mathematics: Don't use division by zero in NAN/INFINITY macros wma: Lower the maximum number of channels to 2 x86: cpu: clean up check for cpuid instruction support ARM: generate position independent code to access data symbols Conflicts: libavutil/opt.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ARM: generate position independent code to access data symbolsMans Rullgard2012-07-01
| | | | | | | | | | | | | | | | | | | | | | This creates proper position independent code when accessing data symbols if CONFIG_PIC is set. References to external symbols should now use the movrelx macro. Some additional code changes are required since this macro may need a register to hold the GOT pointer. Signed-off-by: Mans Rullgard <mans@mansr.com>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-06-08
|/ | | | | | | | | | | | * qatar/master: float_dsp: ppc: add a separate header for Altivec function prototypes ARM: fix float_dsp breakage from d5a7229 Add a float DSP framework to libavutil PPC: Move types_altivec.h and util_altivec.h from libavcodec to libavutil ARM: Move asm.S from libavcodec to libavutil vc1dsp: mark put/avg_vc1_mspel_mc() always_inline Merged-by: Michael Niedermayer <michaelni@gmx.at>
* ARM: Move asm.S from libavcodec to libavutilJustin Ruggles2012-06-08
This will allow for easier implementation of ARM-optimized functions in libraries other than libavcodec.