OLD | NEW |
(Empty) | |
| 1 CODE32 |
| 2 |
| 3 EXPORT |CrcUpdateT4@16| |
| 4 |
| 5 AREA |.text|, CODE, ARM |
| 6 |
| 7 MACRO |
| 8 CRC32_STEP_1 |
| 9 |
| 10 ldrb r4, [r1], #1 |
| 11 subs r2, r2, #1 |
| 12 eor r4, r4, r0 |
| 13 and r4, r4, #0xFF |
| 14 ldr r4, [r3, +r4, lsl #2] |
| 15 eor r0, r4, r0, lsr #8 |
| 16 |
| 17 MEND |
| 18 |
| 19 |
| 20 MACRO |
| 21 CRC32_STEP_4 $STREAM_WORD |
| 22 |
| 23 eor r7, r7, r8 |
| 24 eor r7, r7, r9 |
| 25 eor r0, r0, r7 |
| 26 eor r0, r0, $STREAM_WORD |
| 27 ldr $STREAM_WORD, [r1], #4 |
| 28 |
| 29 and r7, r0, #0xFF |
| 30 and r8, r0, #0xFF00 |
| 31 and r9, r0, #0xFF0000 |
| 32 and r0, r0, #0xFF000000 |
| 33 |
| 34 ldr r7, [r6, +r7, lsl #2] |
| 35 ldr r8, [r5, +r8, lsr #6] |
| 36 ldr r9, [r4, +r9, lsr #14] |
| 37 ldr r0, [r3, +r0, lsr #22] |
| 38 |
| 39 MEND |
| 40 |
| 41 |
| 42 |CrcUpdateT4@16| PROC |
| 43 |
| 44 stmdb sp!, {r4-r11, lr} |
| 45 cmp r2, #0 |
| 46 beq |$fin| |
| 47 |
| 48 |$v1| |
| 49 tst r1, #7 |
| 50 beq |$v2| |
| 51 CRC32_STEP_1 |
| 52 bne |$v1| |
| 53 |
| 54 |$v2| |
| 55 cmp r2, #16 |
| 56 blo |$v3| |
| 57 |
| 58 ldr r10, [r1], #4 |
| 59 ldr r11, [r1], #4 |
| 60 |
| 61 add r4, r3, #0x400 |
| 62 add r5, r3, #0x800 |
| 63 add r6, r3, #0xC00 |
| 64 |
| 65 mov r7, #0 |
| 66 mov r8, #0 |
| 67 mov r9, #0 |
| 68 |
| 69 sub r2, r2, #16 |
| 70 |
| 71 |$loop| |
| 72 ; pld [r1, #0x40] |
| 73 |
| 74 CRC32_STEP_4 r10 |
| 75 CRC32_STEP_4 r11 |
| 76 |
| 77 subs r2, r2, #8 |
| 78 bhs |$loop| |
| 79 |
| 80 sub r1, r1, #8 |
| 81 add r2, r2, #16 |
| 82 |
| 83 eor r7, r7, r8 |
| 84 eor r7, r7, r9 |
| 85 eor r0, r0, r7 |
| 86 |
| 87 |$v3| |
| 88 cmp r2, #0 |
| 89 beq |$fin| |
| 90 |
| 91 |$v4| |
| 92 CRC32_STEP_1 |
| 93 bne |$v4| |
| 94 |
| 95 |$fin| |
| 96 ldmia sp!, {r4-r11, pc} |
| 97 |
| 98 |CrcUpdateT4@16| ENDP |
| 99 |
| 100 END |
OLD | NEW |