Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
163 changes: 0 additions & 163 deletions common/arm/ih264_mem_fns_neon.s
Original file line number Diff line number Diff line change
Expand Up @@ -29,177 +29,14 @@
@ * Naveen SR
@ *
@ * @par List of Functions:
@ * - ih264_memcpy_mul_8_a9q()
@ * - ih264_memcpy_a9q()
@ * - ih264_memset_mul_8_a9q()
@ * - ih264_memset_a9q()
@ * - ih264_memset_16bit_mul_8_a9q()
@ * - ih264_memset_a9q()
@ *
@ * @remarks
@ * None
@ *
@ *******************************************************************************
@*

@**
@*******************************************************************************
@*
@* @brief
@* memcpy of a 1d array
@*
@* @par Description:
@* Does memcpy of 8bit data from source to destination for 8,16 or 32 number of bytes
@*
@* @param[in] pu1_dst
@* UWORD8 pointer to the destination
@*
@* @param[in] pu1_src
@* UWORD8 pointer to the source
@*
@* @param[in] num_bytes
@* number of bytes to copy
@* @returns
@*
@* @remarks
@* None
@*
@*******************************************************************************
@*
@void ih264_memcpy_mul_8(UWORD8 *pu1_dst,
@ UWORD8 *pu1_src,
@ UWORD32 num_bytes)
@**************Variables Vs Registers*************************
@ r0 => *pu1_dst
@ r1 => *pu1_src
@ r2 => num_bytes

.text
.p2align 2


.global ih264_memcpy_mul_8_a9q

ih264_memcpy_mul_8_a9q:

loop_neon_memcpy_mul_8:
@ Memcpy 8 bytes
vld1.8 d0, [r1]!
vst1.8 d0, [r0]!

subs r2, r2, #8
bne loop_neon_memcpy_mul_8
bx lr



@*******************************************************************************
@*
@void ih264_memcpy(UWORD8 *pu1_dst,
@ UWORD8 *pu1_src,
@ UWORD32 num_bytes)
@**************Variables Vs Registers*************************
@ r0 => *pu1_dst
@ r1 => *pu1_src
@ r2 => num_bytes



.global ih264_memcpy_a9q

ih264_memcpy_a9q:
subs r2, #8
blt memcpy
loop_neon_memcpy:
@ Memcpy 8 bytes
vld1.8 d0, [r1]!
vst1.8 d0, [r0]!

subs r2, #8
bge loop_neon_memcpy
cmp r2, #-8
bxeq lr

memcpy:
add r2, #8

loop_memcpy:
ldrb r3, [r1], #1
strb r3, [r0], #1
subs r2, #1
bne loop_memcpy
bx lr




@void ih264_memset_mul_8(UWORD8 *pu1_dst,
@ UWORD8 value,
@ UWORD32 num_bytes)
@**************Variables Vs Registers*************************
@ r0 => *pu1_dst
@ r1 => value
@ r2 => num_bytes





.global ih264_memset_mul_8_a9q

ih264_memset_mul_8_a9q:

@ Assumptions: numbytes is either 8, 16 or 32
vdup.8 d0, r1
loop_memset_mul_8:
@ Memset 8 bytes
vst1.8 d0, [r0]!

subs r2, r2, #8
bne loop_memset_mul_8

bx lr




@void ih264_memset(UWORD8 *pu1_dst,
@ UWORD8 value,
@ UWORD8 num_bytes)
@**************Variables Vs Registers*************************
@ r0 => *pu1_dst
@ r1 => value
@ r2 => num_bytes



.global ih264_memset_a9q

ih264_memset_a9q:
subs r2, #8
blt memset
vdup.8 d0, r1
loop_neon_memset:
@ Memcpy 8 bytes
vst1.8 d0, [r0]!

subs r2, #8
bge loop_neon_memset
cmp r2, #-8
bxeq lr

memset:
add r2, #8

loop_memset:
strb r1, [r0], #1
subs r2, #1
bne loop_memset
bx lr




@void ih264_memset_16bit_mul_8(UWORD16 *pu2_dst,
@ UWORD16 value,
@ UWORD32 num_words)
Expand Down
165 changes: 0 additions & 165 deletions common/armv8/ih264_mem_fns_neon_av8.s
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,6 @@
// * Naveen SR
// *
// * @par List of Functions:
// * - ih264_memcpy_av8()
// * - ih264_memcpy_mul_8_av8()
// * - ih264_memset_mul_8_av8()
// * - ih264_memset_16bit_mul_8_av8()
// * - ih264_memset_16bit_av8()
// *
Expand All @@ -43,168 +40,6 @@

.include "ih264_neon_macros.s"
.text
///**
//*******************************************************************************
//*
//* @brief
//* memcpy of a 1d array
//*
//* @par Description:
//* Does memcpy of 8bit data from source to destination for 8,16 or 32 number of bytes
//*
//* @param[in] pu1_dst
//* UWORD8 pointer to the destination
//*
//* @param[in] pu1_src
//* UWORD8 pointer to the source
//*
//* @param[in] num_bytes
//* number of bytes to copy
//* @returns
//*
//* @remarks
//* None
//*
//*******************************************************************************
//*/
//void ih264_memcpy_mul_8(UWORD8 *pu1_dst,
// UWORD8 *pu1_src,
// UWORD32 num_bytes)
//**************Variables Vs Registers*************************
// x0 => *pu1_dst
// x1 => *pu1_src
// w2 => num_bytes





.global ih264_memcpy_mul_8_av8

ENTRY ih264_memcpy_mul_8_av8

loop_neon_memcpy_mul_8:
// Memcpy 8 bytes
ld1 {v0.8b}, [x1], #8
st1 {v0.8b}, [x0], #8

subs w2, w2, #8
bne loop_neon_memcpy_mul_8
EXIT_FUNC
ret



//*******************************************************************************
//*/
//void ih264_memcpy(UWORD8 *pu1_dst,
// UWORD8 *pu1_src,
// UWORD32 num_bytes)
//**************Variables Vs Registers*************************
// x0 => *pu1_dst
// x1 => *pu1_src
// w2 => num_bytes



.global ih264_memcpy_av8

ENTRY ih264_memcpy_av8
subs w2, w2, #8
blt arm_memcpy
loop_neon_memcpy:
// Memcpy 8 bytes
ld1 {v0.8b}, [x1], #8
st1 {v0.8b}, [x0], #8

subs w2, w2, #8
bge loop_neon_memcpy
cmn w2, #8
beq end_func1

arm_memcpy:
add w2, w2, #8

loop_arm_memcpy:
ldrb w3, [x1], #1
strb w3, [x0], #1
subs w2, w2, #1
bne loop_arm_memcpy
EXIT_FUNC
ret
end_func1:
EXIT_FUNC
ret


//void ih264_memset_mul_8(UWORD8 *pu1_dst,
// UWORD8 value,
// UWORD32 num_bytes)
//**************Variables Vs Registers*************************
// x0 => *pu1_dst
// x1 => value
// x2 => num_bytes


.global ih264_memset_mul_8_av8

ENTRY ih264_memset_mul_8_av8

// Assumptions: numbytes is either 8, 16 or 32
dup v0.8b, w1
loop_memset_mul_8:
// Memset 8 bytes
st1 {v0.8b}, [x0], #8

subs w2, w2, #8
bne loop_memset_mul_8

EXIT_FUNC
ret


//void ih264_memset(UWORD8 *pu1_dst,
// UWORD8 value,
// UWORD32 num_bytes)
//**************Variables Vs Registers*************************
// x0 => *pu1_dst
// w1 => value
// w2 => num_bytes



.global ih264_memset_av8

ENTRY ih264_memset_av8
subs w2, w2, #8
blt arm_memset
dup v0.8b, w1
loop_neon_memset:
// Memcpy 8 bytes
st1 {v0.8b}, [x0], #8

subs w2, w2, #8
bge loop_neon_memset
cmn w2, #8
beq end_func2

arm_memset:
add w2, w2, #8

loop_arm_memset:
strb w1, [x0], #1
subs w2, w2, #1
bne loop_arm_memset
EXIT_FUNC
ret
end_func2:
EXIT_FUNC
ret





//void ih264_memset_16bit_mul_8(UWORD16 *pu2_dst,
// UWORD16 value,
// UWORD32 num_words)
Expand Down
Loading
Loading