ARM: use new macros for assembler function labels
Originally committed as revision 15725 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		
							parent
							
								
									c72ab30188
								
							
						
					
					
						commit
						c130bedc99
					
				@ -20,6 +20,7 @@
 | 
			
		||||
@
 | 
			
		||||
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#include "asm.S"
 | 
			
		||||
 | 
			
		||||
#ifndef HAVE_PLD
 | 
			
		||||
.macro pld reg
 | 
			
		||||
@ -79,8 +80,7 @@
 | 
			
		||||
 | 
			
		||||
@ ----------------------------------------------------------------
 | 
			
		||||
        .align 8
 | 
			
		||||
        .global put_pixels16_arm
 | 
			
		||||
put_pixels16_arm:
 | 
			
		||||
function put_pixels16_arm, export=1
 | 
			
		||||
        @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
 | 
			
		||||
        @ block = word aligned, pixles = unaligned
 | 
			
		||||
        pld [r1]
 | 
			
		||||
@ -138,11 +138,11 @@ put_pixels16_arm:
 | 
			
		||||
        .word 2b
 | 
			
		||||
        .word 3b
 | 
			
		||||
        .word 4b
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
@ ----------------------------------------------------------------
 | 
			
		||||
        .align 8
 | 
			
		||||
        .global put_pixels8_arm
 | 
			
		||||
put_pixels8_arm:
 | 
			
		||||
function put_pixels8_arm, export=1
 | 
			
		||||
        @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
 | 
			
		||||
        @ block = word aligned, pixles = unaligned
 | 
			
		||||
        pld [r1]
 | 
			
		||||
@ -200,11 +200,11 @@ put_pixels8_arm:
 | 
			
		||||
        .word 2b
 | 
			
		||||
        .word 3b
 | 
			
		||||
        .word 4b
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
@ ----------------------------------------------------------------
 | 
			
		||||
        .align 8
 | 
			
		||||
        .global put_pixels8_x2_arm
 | 
			
		||||
put_pixels8_x2_arm:
 | 
			
		||||
function put_pixels8_x2_arm, export=1
 | 
			
		||||
        @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
 | 
			
		||||
        @ block = word aligned, pixles = unaligned
 | 
			
		||||
        pld [r1]
 | 
			
		||||
@ -270,10 +270,10 @@ put_pixels8_x2_arm:
 | 
			
		||||
        .word 2b
 | 
			
		||||
        .word 3b
 | 
			
		||||
        .word 4b
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
        .align 8
 | 
			
		||||
        .global put_no_rnd_pixels8_x2_arm
 | 
			
		||||
put_no_rnd_pixels8_x2_arm:
 | 
			
		||||
function put_no_rnd_pixels8_x2_arm, export=1
 | 
			
		||||
        @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
 | 
			
		||||
        @ block = word aligned, pixles = unaligned
 | 
			
		||||
        pld [r1]
 | 
			
		||||
@ -339,12 +339,12 @@ put_no_rnd_pixels8_x2_arm:
 | 
			
		||||
        .word 2b
 | 
			
		||||
        .word 3b
 | 
			
		||||
        .word 4b
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ ----------------------------------------------------------------
 | 
			
		||||
        .align 8
 | 
			
		||||
        .global put_pixels8_y2_arm
 | 
			
		||||
put_pixels8_y2_arm:
 | 
			
		||||
function put_pixels8_y2_arm, export=1
 | 
			
		||||
        @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
 | 
			
		||||
        @ block = word aligned, pixles = unaligned
 | 
			
		||||
        pld [r1]
 | 
			
		||||
@ -450,10 +450,10 @@ put_pixels8_y2_arm:
 | 
			
		||||
        .word 2b
 | 
			
		||||
        .word 3b
 | 
			
		||||
        .word 4b
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
        .align 8
 | 
			
		||||
        .global put_no_rnd_pixels8_y2_arm
 | 
			
		||||
put_no_rnd_pixels8_y2_arm:
 | 
			
		||||
function put_no_rnd_pixels8_y2_arm, export=1
 | 
			
		||||
        @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
 | 
			
		||||
        @ block = word aligned, pixles = unaligned
 | 
			
		||||
        pld [r1]
 | 
			
		||||
@ -558,6 +558,7 @@ put_no_rnd_pixels8_y2_arm:
 | 
			
		||||
        .word 2b
 | 
			
		||||
        .word 3b
 | 
			
		||||
        .word 4b
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
@ ----------------------------------------------------------------
 | 
			
		||||
.macro  RND_XY2_IT align
 | 
			
		||||
@ -625,8 +626,7 @@ put_no_rnd_pixels8_y2_arm:
 | 
			
		||||
.endm
 | 
			
		||||
 | 
			
		||||
        .align 8
 | 
			
		||||
        .global put_pixels8_xy2_arm
 | 
			
		||||
put_pixels8_xy2_arm:
 | 
			
		||||
function put_pixels8_xy2_arm, export=1
 | 
			
		||||
        @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
 | 
			
		||||
        @ block = word aligned, pixles = unaligned
 | 
			
		||||
        pld [r1]
 | 
			
		||||
@ -659,10 +659,10 @@ put_pixels8_xy2_arm:
 | 
			
		||||
        .word 0x02020202
 | 
			
		||||
        .word 0xFCFCFCFC >> 2
 | 
			
		||||
        .word 0x0F0F0F0F
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
        .align 8
 | 
			
		||||
        .global put_no_rnd_pixels8_xy2_arm
 | 
			
		||||
put_no_rnd_pixels8_xy2_arm:
 | 
			
		||||
function put_no_rnd_pixels8_xy2_arm, export=1
 | 
			
		||||
        @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h)
 | 
			
		||||
        @ block = word aligned, pixles = unaligned
 | 
			
		||||
        pld [r1]
 | 
			
		||||
@ -695,3 +695,4 @@ put_no_rnd_pixels8_xy2_arm:
 | 
			
		||||
        .word 0x01010101
 | 
			
		||||
        .word 0xFCFCFCFC >> 2
 | 
			
		||||
        .word 0x0F0F0F0F
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
@ -24,6 +24,9 @@
 | 
			
		||||
   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include "asm.S"
 | 
			
		||||
 | 
			
		||||
#define FIX_0_298631336 2446
 | 
			
		||||
#define FIX_0_541196100 4433
 | 
			
		||||
#define FIX_0_765366865 6270
 | 
			
		||||
@ -54,8 +57,7 @@
 | 
			
		||||
        .text
 | 
			
		||||
        .align
 | 
			
		||||
 | 
			
		||||
        .global j_rev_dct_ARM
 | 
			
		||||
j_rev_dct_ARM:
 | 
			
		||||
function j_rev_dct_ARM, export=1
 | 
			
		||||
        stmdb   sp!, { r4 - r12, lr }   @ all callee saved regs
 | 
			
		||||
 | 
			
		||||
        sub sp, sp, #4                  @ reserve some space on the stack
 | 
			
		||||
 | 
			
		||||
@ -24,6 +24,8 @@
 | 
			
		||||
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "asm.S"
 | 
			
		||||
 | 
			
		||||
/* useful constants for the algorithm, they are save in __constant_ptr__ at */
 | 
			
		||||
/* the end of the source code.*/
 | 
			
		||||
#define W1  22725
 | 
			
		||||
@ -53,10 +55,8 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        .text
 | 
			
		||||
        .align
 | 
			
		||||
        .global simple_idct_ARM
 | 
			
		||||
 | 
			
		||||
simple_idct_ARM:
 | 
			
		||||
function simple_idct_ARM, export=1
 | 
			
		||||
        @@ void simple_idct_ARM(int16_t *block)
 | 
			
		||||
        @@ save stack for reg needed (take all of them),
 | 
			
		||||
        @@ R0-R3 are scratch regs, so no need to save them, but R0 contains the pointer to block
 | 
			
		||||
 | 
			
		||||
@ -21,6 +21,8 @@
 | 
			
		||||
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "asm.S"
 | 
			
		||||
 | 
			
		||||
#define W1  22725   /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */
 | 
			
		||||
#define W2  21407   /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */
 | 
			
		||||
#define W3  19266   /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */
 | 
			
		||||
@ -41,10 +43,7 @@ w13:    .long W13
 | 
			
		||||
w26:    .long W26
 | 
			
		||||
w57:    .long W57
 | 
			
		||||
 | 
			
		||||
        .align
 | 
			
		||||
        .type idct_row_armv5te, %function
 | 
			
		||||
        .func idct_row_armv5te
 | 
			
		||||
idct_row_armv5te:
 | 
			
		||||
function idct_row_armv5te
 | 
			
		||||
        str    lr, [sp, #-4]!
 | 
			
		||||
 | 
			
		||||
        ldrd   v1, [a1, #8]
 | 
			
		||||
@ -262,10 +261,7 @@ row_dc_only:
 | 
			
		||||
        sub    fp, fp, a4
 | 
			
		||||
        .endm
 | 
			
		||||
 | 
			
		||||
        .align
 | 
			
		||||
        .type idct_col_armv5te, %function
 | 
			
		||||
        .func idct_col_armv5te
 | 
			
		||||
idct_col_armv5te:
 | 
			
		||||
function idct_col_armv5te
 | 
			
		||||
        str    lr, [sp, #-4]!
 | 
			
		||||
 | 
			
		||||
        idct_col
 | 
			
		||||
@ -337,10 +333,7 @@ idct_col_armv5te:
 | 
			
		||||
        ldr    pc, [sp], #4
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
        .align
 | 
			
		||||
        .type idct_col_put_armv5te, %function
 | 
			
		||||
        .func idct_col_put_armv5te
 | 
			
		||||
idct_col_put_armv5te:
 | 
			
		||||
function idct_col_put_armv5te
 | 
			
		||||
        str    lr, [sp, #-4]!
 | 
			
		||||
 | 
			
		||||
        idct_col
 | 
			
		||||
@ -457,10 +450,7 @@ idct_col_put_armv5te:
 | 
			
		||||
        ldr    pc, [sp], #4
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
        .align
 | 
			
		||||
        .type idct_col_add_armv5te, %function
 | 
			
		||||
        .func idct_col_add_armv5te
 | 
			
		||||
idct_col_add_armv5te:
 | 
			
		||||
function idct_col_add_armv5te
 | 
			
		||||
        str    lr, [sp, #-4]!
 | 
			
		||||
 | 
			
		||||
        idct_col
 | 
			
		||||
@ -610,11 +600,7 @@ idct_col_add_armv5te:
 | 
			
		||||
        ldr    pc, [sp], #4
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
        .align
 | 
			
		||||
        .global simple_idct_armv5te
 | 
			
		||||
        .type simple_idct_armv5te, %function
 | 
			
		||||
        .func simple_idct_armv5te
 | 
			
		||||
simple_idct_armv5te:
 | 
			
		||||
function simple_idct_armv5te, export=1
 | 
			
		||||
        stmfd  sp!, {v1, v2, v3, v4, v5, v6, v7, fp, lr}
 | 
			
		||||
 | 
			
		||||
        bl     idct_row_armv5te
 | 
			
		||||
@ -646,11 +632,7 @@ simple_idct_armv5te:
 | 
			
		||||
        ldmfd  sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc}
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
        .align
 | 
			
		||||
        .global simple_idct_add_armv5te
 | 
			
		||||
        .type simple_idct_add_armv5te, %function
 | 
			
		||||
        .func simple_idct_add_armv5te
 | 
			
		||||
simple_idct_add_armv5te:
 | 
			
		||||
function simple_idct_add_armv5te, export=1
 | 
			
		||||
        stmfd  sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr}
 | 
			
		||||
 | 
			
		||||
        mov    a1, a3
 | 
			
		||||
@ -685,11 +667,7 @@ simple_idct_add_armv5te:
 | 
			
		||||
        ldmfd  sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc}
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
        .align
 | 
			
		||||
        .global simple_idct_put_armv5te
 | 
			
		||||
        .type simple_idct_put_armv5te, %function
 | 
			
		||||
        .func simple_idct_put_armv5te
 | 
			
		||||
simple_idct_put_armv5te:
 | 
			
		||||
function simple_idct_put_armv5te, export=1
 | 
			
		||||
        stmfd  sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr}
 | 
			
		||||
 | 
			
		||||
        mov    a1, a3
 | 
			
		||||
 | 
			
		||||
@ -21,6 +21,8 @@
 | 
			
		||||
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "asm.S"
 | 
			
		||||
 | 
			
		||||
#define W1  22725   /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */
 | 
			
		||||
#define W2  21407   /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */
 | 
			
		||||
#define W3  19266   /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */
 | 
			
		||||
@ -190,10 +192,7 @@ w57:    .long W57
 | 
			
		||||
  a1 = source
 | 
			
		||||
  a2 = dest
 | 
			
		||||
*/
 | 
			
		||||
        .align
 | 
			
		||||
        .type idct_row_armv6, %function
 | 
			
		||||
        .func idct_row_armv6
 | 
			
		||||
idct_row_armv6:
 | 
			
		||||
function idct_row_armv6
 | 
			
		||||
        str    lr, [sp, #-4]!
 | 
			
		||||
 | 
			
		||||
        ldr    lr, [a1, #12]         /* lr = row[7,5] */
 | 
			
		||||
@ -245,10 +244,7 @@ idct_row_armv6:
 | 
			
		||||
  a1 = source
 | 
			
		||||
  a2 = dest
 | 
			
		||||
*/
 | 
			
		||||
        .align
 | 
			
		||||
        .type idct_col_armv6, %function
 | 
			
		||||
        .func idct_col_armv6
 | 
			
		||||
idct_col_armv6:
 | 
			
		||||
function idct_col_armv6
 | 
			
		||||
        stmfd  sp!, {a2, lr}
 | 
			
		||||
 | 
			
		||||
        ldr    a3, [a1]              /* a3 = row[2,0] */
 | 
			
		||||
@ -276,10 +272,7 @@ idct_col_armv6:
 | 
			
		||||
  a2 = dest
 | 
			
		||||
  a3 = line size
 | 
			
		||||
*/
 | 
			
		||||
        .align
 | 
			
		||||
        .type idct_col_put_armv6, %function
 | 
			
		||||
        .func idct_col_put_armv6
 | 
			
		||||
idct_col_put_armv6:
 | 
			
		||||
function idct_col_put_armv6
 | 
			
		||||
        stmfd  sp!, {a2, a3, lr}
 | 
			
		||||
 | 
			
		||||
        ldr    a3, [a1]              /* a3 = row[2,0] */
 | 
			
		||||
@ -309,10 +302,7 @@ idct_col_put_armv6:
 | 
			
		||||
  a2 = dest
 | 
			
		||||
  a3 = line size
 | 
			
		||||
*/
 | 
			
		||||
        .align
 | 
			
		||||
        .type idct_col_add_armv6, %function
 | 
			
		||||
        .func idct_col_add_armv6
 | 
			
		||||
idct_col_add_armv6:
 | 
			
		||||
function idct_col_add_armv6
 | 
			
		||||
        stmfd  sp!, {a2, a3, lr}
 | 
			
		||||
 | 
			
		||||
        ldr    a3, [a1]              /* a3 = row[2,0] */
 | 
			
		||||
@ -393,12 +383,8 @@ idct_col_add_armv6:
 | 
			
		||||
        sub    a1, a1, #(16*7)
 | 
			
		||||
        .endm
 | 
			
		||||
 | 
			
		||||
        .align
 | 
			
		||||
        .global ff_simple_idct_armv6
 | 
			
		||||
        .type ff_simple_idct_armv6, %function
 | 
			
		||||
        .func ff_simple_idct_armv6
 | 
			
		||||
/* void ff_simple_idct_armv6(DCTELEM *data); */
 | 
			
		||||
ff_simple_idct_armv6:
 | 
			
		||||
function ff_simple_idct_armv6, export=1
 | 
			
		||||
        stmfd  sp!, {v1, v2, v3, v4, v5, v6, v7, fp, lr}
 | 
			
		||||
        sub    sp, sp, #128
 | 
			
		||||
 | 
			
		||||
@ -412,12 +398,8 @@ ff_simple_idct_armv6:
 | 
			
		||||
        ldmfd  sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc}
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
        .align
 | 
			
		||||
        .global ff_simple_idct_add_armv6
 | 
			
		||||
        .type ff_simple_idct_add_armv6, %function
 | 
			
		||||
        .func ff_simple_idct_add_armv6
 | 
			
		||||
/* ff_simple_idct_add_armv6(uint8_t *dest, int line_size, DCTELEM *data); */
 | 
			
		||||
ff_simple_idct_add_armv6:
 | 
			
		||||
function ff_simple_idct_add_armv6, export=1
 | 
			
		||||
        stmfd  sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr}
 | 
			
		||||
        sub    sp, sp, #128
 | 
			
		||||
 | 
			
		||||
@ -433,12 +415,8 @@ ff_simple_idct_add_armv6:
 | 
			
		||||
        ldmfd  sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc}
 | 
			
		||||
        .endfunc
 | 
			
		||||
 | 
			
		||||
        .align
 | 
			
		||||
        .global ff_simple_idct_put_armv6
 | 
			
		||||
        .type ff_simple_idct_put_armv6, %function
 | 
			
		||||
        .func ff_simple_idct_put_armv6
 | 
			
		||||
/* ff_simple_idct_put_armv6(uint8_t *dest, int line_size, DCTELEM *data); */
 | 
			
		||||
ff_simple_idct_put_armv6:
 | 
			
		||||
function ff_simple_idct_put_armv6, export=1
 | 
			
		||||
        stmfd  sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr}
 | 
			
		||||
        sub    sp, sp, #128
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user