.p2align 2,,3 .syntax unified .text .global Decode_Rq_asm .type Decode_Rq_asm, %function Decode_Rq_asm: push.w {r2-r12, lr} add.w r1, r1, #1623 @ length = 1, radix = 274 ldrh.w r5, [r1, #-2]! strh.w r5, [r0] @ length = 2, radix = 91 add.w r2, r0, #4 @ used for str add.w r0, r0, #2 @ used for ldr mov.w r11, #91 @ radix movw.w r12, #11522 movt.w r12, #720 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrb.w r6, [r1, #-1]! add.w r5, r6, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! @ length = 4, radix = 152 add.w r2, r0, #8 @ used for str add.w r0, r0, #4 @ used for ldr mov.w r11, #152 @ radix movw.w r12, #10347 movt.w r12, #431 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrb.w r6, [r1, #-1]! add.w r5, r6, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! ldrh.w r3, [r0, #-2]! ldrb.w r5, [r1, #-1]! add.w r5, r5, r3, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! @ length = 8, radix = 197 add.w r2, r0, #16 @ used for str add.w r0, r0, #8 @ used for ldr mov.w r11, #197 @ radix movw.w r12, #43912 movt.w r12, #332 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrb.w r6, [r1, #-1]! add.w r5, r6, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! ldrh.w r4, [r0, #-2] ldr.w r3, [r0, #-6]! ldrb.w r6, [r1, #-1] ldrh.w r5, [r1, #-3]! add.w r7, r6, r4, lsl #8 ubfx r6, r3, #16, #16 ubfx r4, r5, #8, #8 add.w r6, r4, r6, lsl #8 ubfx r4, r5, #0, #8 ubfx r5, r3, #0, #16 add.w r5, r4, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 str.w r7, [r2, #-4] str.w r6, [r2, #-8] str.w r5, [r2, #-12]! @ length = 16, radix = 3586 add.w r2, r0, #32 @ used for str add.w r0, r0, #16 @ used for ldr mov.w r11, #3586 @ radix movw.w r12, #18056 movt.w r12, #18 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrb.w r6, [r1, #-1]! add.w r5, r6, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! ldrh.w r4, [r0, #-2] ldr.w r3, [r0, #-6]! ldrh.w r6, [r1, #-2] ldr.w r5, [r1, #-6]! pkhbt r7, r6, r4, lsl #16 pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 str.w r7, [r2, #-4] str.w r6, [r2, #-8] str.w r5, [r2, #-12]! ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r6, [r1, #-4] ldr.w r5, [r1, #-8]! pkhtb r8, r4, r6, asr #16 pkhbt r7, r6, r4, lsl #16 pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! @ length = 32, radix = 958 add.w r2, r0, #64 @ used for str add.w r0, r0, #32 @ used for ldr mov.w r11, #958 @ radix movw.w r12, #26816 movt.w r12, #68 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrh.w r6, [r1, #-2]! add.w r5, r6, r5, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! ldrh.w r4, [r0, #-2] ldr.w r3, [r0, #-6]! ldrb.w r6, [r1, #-1] ldrh.w r5, [r1, #-3]! add.w r7, r6, r4, lsl #8 ubfx r6, r3, #16, #16 ubfx r4, r5, #8, #8 add.w r6, r4, r6, lsl #8 ubfx r4, r5, #0, #8 ubfx r5, r3, #0, #16 add.w r5, r4, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 str.w r7, [r2, #-4] str.w r6, [r2, #-8] str.w r5, [r2, #-12]! ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r5, [r1, #-4]! ubfx r8, r4, #16, #16 ubfx r7, r5, #24, #8 add.w r8, r7, r8, lsl #8 ubfx r7, r4, #0, #16 ubfx r6, r5, #16, #8 add.w r7, r6, r7, lsl #8 ubfx r6, r3, #16, #16 ubfx r4, r5, #8, #8 add.w r6, r4, r6, lsl #8 ubfx r4, r5, #0, #8 ubfx r5, r3, #0, #16 add.w r5, r4, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r5, [r1, #-4]! ubfx r8, r4, #16, #16 ubfx r7, r5, #24, #8 add.w r8, r7, r8, lsl #8 ubfx r7, r4, #0, #16 ubfx r6, r5, #16, #8 add.w r7, r6, r7, lsl #8 ubfx r6, r3, #16, #16 ubfx r4, r5, #8, #8 add.w r6, r4, r6, lsl #8 ubfx r4, r5, #0, #8 ubfx r5, r3, #0, #16 add.w r5, r4, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r5, [r1, #-4]! ubfx r8, r4, #16, #16 ubfx r7, r5, #24, #8 add.w r8, r7, r8, lsl #8 ubfx r7, r4, #0, #16 ubfx r6, r5, #16, #8 add.w r7, r6, r7, lsl #8 ubfx r6, r3, #16, #16 ubfx r4, r5, #8, #8 add.w r6, r4, r6, lsl #8 ubfx r4, r5, #0, #8 ubfx r5, r3, #0, #16 add.w r5, r4, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! @ length = 64, radix = 7921 add.w r2, r0, #128 @ used for str add.w r0, r0, #64 @ used for ldr mov.w r11, #7921 @ radix movw.w r12, #17937 movt.w r12, #8 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrb.w r6, [r1, #-1]! add.w r5, r6, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! ldrh.w r4, [r0, #-2] ldr.w r3, [r0, #-6]! ldrh.w r6, [r1, #-2] ldr.w r5, [r1, #-6]! pkhbt r7, r6, r4, lsl #16 pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 str.w r7, [r2, #-4] str.w r6, [r2, #-8] str.w r5, [r2, #-12]! Decode_Rq_asm_radix7921: ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r6, [r1, #-4] ldr.w r5, [r1, #-8]! pkhtb r8, r4, r6, asr #16 pkhbt r7, r6, r4, lsl #16 pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! cmp.w r0, r2 bne.w Decode_Rq_asm_radix7921 @ length = 127, radix = 89 add.w r2, r0, #254 @ used for str add.w r0, r0, #128 @ used for ldr mov.w r11, #89 @ radix movw.w r12, #23563 movt.w r12, #736 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! strh.w r5, [r2, #-2]! ldrh.w r4, [r0, #-2] ldr.w r3, [r0, #-6]! ubfx r7, r4, #0, #16 ubfx r6, r3, #16, #16 ubfx r5, r3, #0, #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 str.w r7, [r2, #-4] str.w r6, [r2, #-8] str.w r5, [r2, #-12]! Decode_Rq_asm_radix89: ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ubfx r8, r4, #16, #16 ubfx r7, r4, #0, #16 ubfx r6, r3, #16, #16 ubfx r5, r3, #0, #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! cmp.w r0, r2 bne.w Decode_Rq_asm_radix89 @ length = 254, radix = 2414 add.w r2, r0, #508 @ used for str add.w r0, r0, #254 @ used for ldr mov.w r11, #2414 @ radix movw.w r12, #9719 movt.w r12, #27 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrh.w r6, [r1, #-2]! add.w r5, r6, r5, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! ldr.w r3, [r0, #-4]! ldr.w r5, [r1, #-4]! pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 str.w r6, [r2, #-4] str.w r5, [r2, #-8]! Decode_Rq_asm_radix2414: ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r6, [r1, #-4] ldr.w r5, [r1, #-8]! pkhtb r8, r4, r6, asr #16 pkhbt r7, r6, r4, lsl #16 pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! cmp.w r0, r2 bne.w Decode_Rq_asm_radix2414 @ length = 507, radix = 786 add.w r2, r0, #1014 @ used for str add.w r0, r0, #508 @ used for ldr mov.w r11, #786 @ radix movw.w r12, #24846 movt.w r12, #83 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! strh.w r5, [r2, #-2]! ldrh.w r3, [r0, #-2]! ldrb.w r5, [r1, #-1]! add.w r5, r5, r3, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! Decode_Rq_asm_radix786: ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r5, [r1, #-4]! ubfx r8, r4, #16, #16 ubfx r7, r5, #24, #8 add.w r8, r7, r8, lsl #8 ubfx r7, r4, #0, #16 ubfx r6, r5, #16, #8 add.w r7, r6, r7, lsl #8 ubfx r6, r3, #16, #16 ubfx r4, r5, #8, #8 add.w r6, r4, r6, lsl #8 ubfx r4, r5, #0, #8 ubfx r5, r3, #0, #16 add.w r5, r4, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! cmp.w r0, r2 bne.w Decode_Rq_asm_radix786 @ length = 1013, radix = 7177 add.w r2, r0, #2026 @ used for str add.w r0, r0, #1014 @ used for ldr movw.w r9, #3588 movt.w r9, #3588 mov.w r11, #7177 @ radix movw.w r12, #8610 movt.w r12, #9 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ssub16 r5, r5, r9 strh.w r5, [r2, #-2]! ldr.w r3, [r0, #-4]! ldr.w r5, [r1, #-4]! pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 ssub16 r5, r5, r9 ssub16 r6, r6, r9 str.w r6, [r2, #-4] str.w r5, [r2, #-8]! Decode_Rq_asm_radix7177: ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r6, [r1, #-4] ldr.w r5, [r1, #-8]! pkhtb r8, r4, r6, asr #16 pkhbt r7, r6, r4, lsl #16 pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 ssub16 r5, r5, r9 ssub16 r6, r6, r9 ssub16 r7, r7, r9 ssub16 r8, r8, r9 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! cmp.w r0, r2 bne.w Decode_Rq_asm_radix7177 pop.w {r2-r12, pc} .p2align 2,,3 .syntax unified .text .global Decode_Rounded_asm .type Decode_Rounded_asm, %function Decode_Rounded_asm: push.w {r2-r12, lr} add.w r1, r1, #1423 @ length = 1, radix = 276 ldrh.w r5, [r1, #-2]! strh.w r5, [r0] @ length = 2, radix = 14506 add.w r2, r0, #4 @ used for str add.w r0, r0, #2 @ used for ldr mov.w r11, #14506 @ radix movw.w r12, #33938 movt.w r12, #4 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrh.w r6, [r1, #-2]! add.w r5, r6, r5, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! @ length = 4, radix = 1927 add.w r2, r0, #8 @ used for str add.w r0, r0, #4 @ used for ldr mov.w r11, #1927 @ radix movw.w r12, #612 movt.w r12, #34 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrb.w r6, [r1, #-1]! add.w r5, r6, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! ldrh.w r3, [r0, #-2]! ldrb.w r5, [r1, #-1]! add.w r5, r5, r3, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! @ length = 8, radix = 11236 add.w r2, r0, #16 @ used for str add.w r0, r0, #8 @ used for ldr mov.w r11, #11236 @ radix movw.w r12, #54570 movt.w r12, #5 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrh.w r6, [r1, #-2]! add.w r5, r6, r5, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! ldrh.w r4, [r0, #-2] ldr.w r3, [r0, #-6]! ldrh.w r6, [r1, #-2] ldr.w r5, [r1, #-6]! pkhbt r7, r6, r4, lsl #16 pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 str.w r7, [r2, #-4] str.w r6, [r2, #-8] str.w r5, [r2, #-12]! @ length = 16, radix = 106 add.w r2, r0, #32 @ used for str add.w r0, r0, #16 @ used for ldr mov.w r11, #106 @ radix movw.w r12, #17311 movt.w r12, #618 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrb.w r6, [r1, #-1]! add.w r5, r6, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! ldrh.w r4, [r0, #-2] ldr.w r3, [r0, #-6]! ubfx r7, r4, #0, #16 ubfx r6, r3, #16, #16 ubfx r5, r3, #0, #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 str.w r7, [r2, #-4] str.w r6, [r2, #-8] str.w r5, [r2, #-12]! ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ubfx r8, r4, #16, #16 ubfx r7, r4, #0, #16 ubfx r6, r3, #16, #16 ubfx r5, r3, #0, #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! @ length = 32, radix = 164 add.w r2, r0, #64 @ used for str add.w r0, r0, #32 @ used for ldr mov.w r11, #164 @ radix movw.w r12, #39960 movt.w r12, #399 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrb.w r6, [r1, #-1]! add.w r5, r6, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! ldrh.w r4, [r0, #-2] ldr.w r3, [r0, #-6]! ldrb.w r6, [r1, #-1] ldrh.w r5, [r1, #-3]! add.w r7, r6, r4, lsl #8 ubfx r6, r3, #16, #16 ubfx r4, r5, #8, #8 add.w r6, r4, r6, lsl #8 ubfx r4, r5, #0, #8 ubfx r5, r3, #0, #16 add.w r5, r4, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 str.w r7, [r2, #-4] str.w r6, [r2, #-8] str.w r5, [r2, #-12]! ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r5, [r1, #-4]! ubfx r8, r4, #16, #16 ubfx r7, r5, #24, #8 add.w r8, r7, r8, lsl #8 ubfx r7, r4, #0, #16 ubfx r6, r5, #16, #8 add.w r7, r6, r7, lsl #8 ubfx r6, r3, #16, #16 ubfx r4, r5, #8, #8 add.w r6, r4, r6, lsl #8 ubfx r4, r5, #0, #8 ubfx r5, r3, #0, #16 add.w r5, r4, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r5, [r1, #-4]! ubfx r8, r4, #16, #16 ubfx r7, r5, #24, #8 add.w r8, r7, r8, lsl #8 ubfx r7, r4, #0, #16 ubfx r6, r5, #16, #8 add.w r7, r6, r7, lsl #8 ubfx r6, r3, #16, #16 ubfx r4, r5, #8, #8 add.w r6, r4, r6, lsl #8 ubfx r4, r5, #0, #8 ubfx r5, r3, #0, #16 add.w r5, r4, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r5, [r1, #-4]! ubfx r8, r4, #16, #16 ubfx r7, r5, #24, #8 add.w r8, r7, r8, lsl #8 ubfx r7, r4, #0, #16 ubfx r6, r5, #16, #8 add.w r7, r6, r7, lsl #8 ubfx r6, r3, #16, #16 ubfx r4, r5, #8, #8 add.w r6, r4, r6, lsl #8 ubfx r4, r5, #0, #8 ubfx r5, r3, #0, #16 add.w r5, r4, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! @ length = 64, radix = 3278 add.w r2, r0, #128 @ used for str add.w r0, r0, #64 @ used for ldr mov.w r11, #3278 @ radix movw.w r12, #65056 movt.w r12, #19 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrb.w r6, [r1, #-1]! add.w r5, r6, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! ldrh.w r4, [r0, #-2] ldr.w r3, [r0, #-6]! ldrh.w r6, [r1, #-2] ldr.w r5, [r1, #-6]! pkhbt r7, r6, r4, lsl #16 pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 str.w r7, [r2, #-4] str.w r6, [r2, #-8] str.w r5, [r2, #-12]! Decode_Rounded_asm_radix3278: ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r6, [r1, #-4] ldr.w r5, [r1, #-8]! pkhtb r8, r4, r6, asr #16 pkhbt r7, r6, r4, lsl #16 pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! cmp.w r0, r2 bne.w Decode_Rounded_asm_radix3278 @ length = 127, radix = 916 add.w r2, r0, #254 @ used for str add.w r0, r0, #128 @ used for ldr mov.w r11, #916 @ radix movw.w r12, #35772 movt.w r12, #71 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! strh.w r5, [r2, #-2]! ldrh.w r4, [r0, #-2] ldr.w r3, [r0, #-6]! ldrb.w r6, [r1, #-1] ldrh.w r5, [r1, #-3]! add.w r7, r6, r4, lsl #8 ubfx r6, r3, #16, #16 ubfx r4, r5, #8, #8 add.w r6, r4, r6, lsl #8 ubfx r4, r5, #0, #8 ubfx r5, r3, #0, #16 add.w r5, r4, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 str.w r7, [r2, #-4] str.w r6, [r2, #-8] str.w r5, [r2, #-12]! Decode_Rounded_asm_radix916: ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r5, [r1, #-4]! ubfx r8, r4, #16, #16 ubfx r7, r5, #24, #8 add.w r8, r7, r8, lsl #8 ubfx r7, r4, #0, #16 ubfx r6, r5, #16, #8 add.w r7, r6, r7, lsl #8 ubfx r6, r3, #16, #16 ubfx r4, r5, #8, #8 add.w r6, r4, r6, lsl #8 ubfx r4, r5, #0, #8 ubfx r5, r3, #0, #16 add.w r5, r4, r5, lsl #8 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! cmp.w r0, r2 bne.w Decode_Rounded_asm_radix916 @ length = 254, radix = 7744 add.w r2, r0, #508 @ used for str add.w r0, r0, #254 @ used for ldr mov.w r11, #7744 @ radix movw.w r12, #30330 movt.w r12, #8 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! ldrh.w r6, [r1, #-2]! add.w r5, r6, r5, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! ldr.w r3, [r0, #-4]! ldr.w r5, [r1, #-4]! pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 str.w r6, [r2, #-4] str.w r5, [r2, #-8]! Decode_Rounded_asm_radix7744: ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r6, [r1, #-4] ldr.w r5, [r1, #-8]! pkhtb r8, r4, r6, asr #16 pkhbt r7, r6, r4, lsl #16 pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! cmp.w r0, r2 bne.w Decode_Rounded_asm_radix7744 @ length = 507, radix = 88 add.w r2, r0, #1014 @ used for str add.w r0, r0, #508 @ used for ldr mov.w r11, #88 @ radix movw.w r12, #47662 movt.w r12, #744 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! strh.w r5, [r2, #-2]! ldrh.w r3, [r0, #-2]! ubfx r5, r3, #0, #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 str.w r5, [r2, #-4]! Decode_Rounded_asm_radix88: ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ubfx r8, r4, #16, #16 ubfx r7, r4, #0, #16 ubfx r6, r3, #16, #16 ubfx r5, r3, #0, #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! cmp.w r0, r2 bne.w Decode_Rounded_asm_radix88 @ length = 1013, radix = 2393 add.w r2, r0, #2026 @ used for str add.w r0, r0, #1014 @ used for ldr movw.w r9, #3588 movt.w r9, #3588 mov.w r11, #2393 @ radix movw.w r12, #25332 movt.w r12, #27 @ barrett coefficient add.w r10, r12, #1 ldrh.w r5, [r0, #-2]! uadd16 r4, r5, r5 uadd16 r5, r5, r4 ssub16 r5, r5, r9 strh.w r5, [r2, #-2]! ldr.w r3, [r0, #-4]! ldr.w r5, [r1, #-4]! pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 uadd16 r4, r5, r5 uadd16 r5, r5, r4 uadd16 r4, r6, r6 uadd16 r6, r6, r4 ssub16 r5, r5, r9 ssub16 r6, r6, r9 str.w r6, [r2, #-4] str.w r5, [r2, #-8]! Decode_Rounded_asm_radix2393: ldr.w r4, [r0, #-4] ldr.w r3, [r0, #-8]! ldr.w r6, [r1, #-4] ldr.w r5, [r1, #-8]! pkhtb r8, r4, r6, asr #16 pkhbt r7, r6, r4, lsl #16 pkhtb r6, r3, r5, asr #16 pkhbt r5, r5, r3, lsl #16 smmul r3, r5, r12 mls r5, r3, r11, r5 smmul r4, r5, r10 mls r5, r4, r11, r5 add.w r3, r3, r4 pkhbt r5, r5, r3, lsl #16 smmul r3, r6, r12 mls r6, r3, r11, r6 smmul r4, r6, r10 mls r6, r4, r11, r6 add.w r3, r3, r4 pkhbt r6, r6, r3, lsl #16 smmul r3, r7, r12 mls r7, r3, r11, r7 smmul r4, r7, r10 mls r7, r4, r11, r7 add.w r3, r3, r4 pkhbt r7, r7, r3, lsl #16 smmul r3, r8, r12 mls r8, r3, r11, r8 smmul r4, r8, r10 mls r8, r4, r11, r8 add.w r3, r3, r4 pkhbt r8, r8, r3, lsl #16 uadd16 r4, r5, r5 uadd16 r5, r5, r4 uadd16 r4, r6, r6 uadd16 r6, r6, r4 uadd16 r4, r7, r7 uadd16 r7, r7, r4 uadd16 r4, r8, r8 uadd16 r8, r8, r4 ssub16 r5, r5, r9 ssub16 r6, r6, r9 ssub16 r7, r7, r9 ssub16 r8, r8, r9 str.w r8, [r2, #-4] str.w r7, [r2, #-8] str.w r6, [r2, #-12] str.w r5, [r2, #-16]! cmp.w r0, r2 bne.w Decode_Rounded_asm_radix2393 pop.w {r2-r12, pc}