1 #include "../video_utils_p6.h"
3 #ifdef HAS_UVLC_WRITE_BLOCK
5 .global uvlc_write_block
6 .type uvlc_write_block, %function
8 /* This code is an inline version of uvlc_write_block using video_zztable_t81
10 void uvlc_write_block( video_stream_t* const stream, int16_t* data, int32_t num_coeff ) */
12 #define zz(num1, num2) \
13 video_zztable_t81_next_##num1: ;\
16 ldreqsh r1, [r4, #2*num2]; \
17 beq video_zztable_t81_next_##num2; \
21 ldrgtsh r1, [r4, #2*num2]; \
22 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