1 #include "../video_utils_p5p.h"
3 #ifdef HAS_UVLC_WRITE_BLOCK
6 #include "config-tcm.h"
8 .section ".text.itcm","ax"
12 .global uvlc_write_block
13 .type uvlc_write_block, %function
15 /* This code is an inline version of uvlc_write_block using video_zztable_t81
17 void uvlc_write_block( video_stream_t* const stream, int16_t* data, int32_t num_coeff ) */
19 #define zz(num1, num2) \
20 video_zztable_t81_next_##num1: ;\
23 ldreqsh r1, [r4, #2*num2]; \
24 beq video_zztable_t81_next_##num2; \
28 ldrgtsh r1, [r4, #2*num2]; \
29 ldmleia sp!, {r4, pc}; \
109 video_zztable_t81_next_63:
114 /* This code is an optimized version of uvlc_write_block using video_zztable_t81
116 void uvlc_write_block( video_stream_t* const stream, int16_t* data, int32_t num_coeff ) */
119 stmdb sp!, {r4, r5, r6, lr}
128 ldmleia sp!, {r4, r5, r6, pc}
129 ldr r5, =video_zztable_t81
131 video_zztable_t81_next_1:
137 beq video_zztable_t81_next_1
141 ldmleia sp!, {r4, r5, r6, pc}
143 b video_zztable_t81_next_1
146 #endif // HAS_UVLC_WRITE_BLOCK