- 07 Dec, 2012 3 commits
-
-
Mans Rullgard authored
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>
-
Mans Rullgard authored
This allows compiling optimised functions for features not enabled in the core build and selecting these at runtime if the system has the necessary support. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
These macros reflect the actual capabilities required here. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 26 Nov, 2012 1 commit
-
-
Justin Ruggles authored
-
- 11 Oct, 2012 1 commit
-
-
Diego Biurrun authored
-
- 03 Oct, 2012 1 commit
-
-
Mans Rullgard authored
Some old assemblers still in use do not support named tags. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 02 Oct, 2012 3 commits
-
-
Mans Rullgard authored
This function causes several versions of armcc to miscompile code, and the performance impact is small. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
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>
-
Mans Rullgard authored
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>
-
- 21 Sep, 2012 2 commits
-
-
Mans Rullgard authored
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>
-
Mans Rullgard authored
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>
-
- 20 Sep, 2012 1 commit
-
-
Mans Rullgard authored
This allows using a 16-bit opcode when generating Thumb2 code. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 15 Sep, 2012 1 commit
-
-
Mans Rullgard authored
-
- 13 Aug, 2012 2 commits
-
-
Mans Rullgard authored
This avoids having the compiler redundantly mask the values to the smaller size. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
Fixed-point audio codecs often use saturating arithmetic, and special instructions for these operations are common. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 10 Aug, 2012 1 commit
-
-
Mans Rullgard authored
Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 07 Aug, 2012 1 commit
-
-
Mans Rullgard authored
Some compilers do not support the Q/R modifiers used to access the low/high parts of a 64-bit register pair. Check for this and disable all uses of it when not supported. Fixes bug #337. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 01 Jul, 2012 1 commit
-
-
Mans Rullgard authored
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>
-
- 22 Jun, 2012 1 commit
-
-
Diego Biurrun authored
-
- 18 Jun, 2012 1 commit
-
-
Justin Ruggles authored
-
- 12 Jun, 2012 1 commit
-
-
Michael Niedermayer authored
The code otherwise breaks compilation (gcc 4.5 tested but probably any compiler) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
- 08 Jun, 2012 3 commits
-
-
Mans Rullgard authored
Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Justin Ruggles authored
Move vector_fmul() from DSPContext to AVFloatDSPContext.
-
Justin Ruggles authored
This will allow for easier implementation of ARM-optimized functions in libraries other than libavcodec.
-
- 07 May, 2012 1 commit
-
-
Diego Biurrun authored
-
- 03 May, 2012 1 commit
-
-
Mans Rullgard authored
Commit adebad07 "arm: intreadwrite: fix inline asm constraints for gcc 4.6 and later" caused some older gcc versions to miscompile code. This reverts to the old version of the code for these compilers. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 02 May, 2012 2 commits
-
-
Mans Rullgard authored
Starting with version 4.7, gcc properly supports unaligned memory accesses on ARM. Not using the inline asm with these compilers results in better code. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
With a dereferenced type-cast pointer as memory operand, gcc 4.6 and later will sometimes copy the data to a temporary location, the address of which is used as the operand value, if it thinks the target address might be misaligned. Using a pointer to a packed struct type instead does the right thing. The 16-bit case is special since the ldrh instruction addressing modes are limited compared to ldr. The "Uq" constraint produces a memory reference suitable for an ldrsb instruction, which supports the same addressing modes as ldrh. However, the restrictions appear to apply only when the operand addresses a single byte. The memory reference must thus be split into two operands each targeting one byte. Finally, the "Uq" constraint is only available in ARM mode. The Thumb-2 ldrh instruction supports most addressing modes so the normal "m" constraint can be used there. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 22 Apr, 2012 1 commit
-
-
Mans Rullgard authored
This allows masking CPU features with the -cpuflags avconv option which is useful for testing different optimisations without rebuilding. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 12 Mar, 2012 1 commit
-
-
Janne Grunau authored
The were broken since August of 2010 without anyone noticing until three weeks ago. Nobody cares about it anymore and hopefully Marvell will support NEON like in the PXA978 from now on.
-
- 12 Dec, 2011 1 commit
-
-
Mans Rullgard authored
With these changes, gcc 4.5 and later recognise it as a bswap and use the proper instructions on ARM and x86. On x86, the 16-bit bswap is recognised from gcc 4.1. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 11 Oct, 2011 1 commit
-
-
Michael Niedermayer authored
Note, the other arm asm code is likely affected too and should be changed as well. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
- 23 Jun, 2011 1 commit
-
-
Mans Rullgard authored
Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 30 May, 2011 1 commit
-
-
Mans Rullgard authored
Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 28 May, 2011 1 commit
-
-
Mans Rullgard authored
This uses one register less. Also add missing "cc" clobber. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 26 May, 2011 3 commits
-
-
Mans Rullgard authored
Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
The volatile qualifiers are not needed on these statements as their effects are fully specified by constraints. Signed-off-by: Mans Rullgard <mans@mansr.com>
-
Mans Rullgard authored
Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 19 Mar, 2011 1 commit
-
-
Mans Rullgard authored
Signed-off-by: Mans Rullgard <mans@mansr.com>
-
- 18 Feb, 2011 1 commit
-
-
Jason Garrett-Glaser authored
On some versions of gcc, these weren't always getting inlined due to hitting the inline cap limit in some files. This is generally bad, as most of these functions are smaller inlined than not. (cherry picked from commit eb3755a5)
-