diff options
Diffstat (limited to 'ARM_assembly/MultProject/opt1-code-ymh15.s')
-rw-r--r-- | ARM_assembly/MultProject/opt1-code-ymh15.s | 920 |
1 files changed, 920 insertions, 0 deletions
diff --git a/ARM_assembly/MultProject/opt1-code-ymh15.s b/ARM_assembly/MultProject/opt1-code-ymh15.s new file mode 100644 index 0000000..e55df5d --- /dev/null +++ b/ARM_assembly/MultProject/opt1-code-ymh15.s @@ -0,0 +1,920 @@ +INA DCD 0x4, 0x0 +INB DCD -2, -1 +OUT FILL 4*4 + + LDR R0, =INA + LDR R1, =INB + LDR R2, =OUT + BL SMUL64X64 + END + +SMUL64X64 STMED R13!, {R0, R1, R4-R12, LR} + LDR R3, [R0] + LDR R4, [R0, #4] + LDR R7, [R1] + LDR R8, [R1, #4] + MOV R5, #0 + MOV R6, #0 + MVN R1, R7 + ADDS R1, R1, #1 + MVN R11, R8 + ADC R11, R11, #0 + MOV R10, #0 + AND R9, R3, #1 ;1 + CMP R9, R10 + BEQ CONT1 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT1 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;2 + CMP R9, R10 + BEQ CONT2 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT2 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;3 + CMP R9, R10 + BEQ CONT3 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT3 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;4 + CMP R9, R10 + BEQ CONT4 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT4 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;5 + CMP R9, R10 + BEQ CONT5 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT5 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;6 + CMP R9, R10 + BEQ CONT6 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT6 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;7 + CMP R9, R10 + BEQ CONT7 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT7 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;8 + CMP R9, R10 + BEQ CONT8 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT8 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;9 + CMP R9, R10 + BEQ CONT9 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT9 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;10 + CMP R9, R10 + BEQ CONT10 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT10 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;11 + CMP R9, R10 + BEQ CONT11 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT11 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;12 + CMP R9, R10 + BEQ CONT12 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT12 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;13 + CMP R9, R10 + BEQ CONT13 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT13 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;14 + CMP R9, R10 + BEQ CONT14 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT14 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;15 + CMP R9, R10 + BEQ CONT15 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT15 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;16 + CMP R9, R10 + BEQ CONT16 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT16 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;17 + CMP R9, R10 + BEQ CONT17 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT17 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;18 + CMP R9, R10 + BEQ CONT18 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT18 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;19 + CMP R9, R10 + BEQ CONT19 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT19 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;20 + CMP R9, R10 + BEQ CONT20 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT20 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;21 + CMP R9, R10 + BEQ CONT21 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT21 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;22 + CMP R9, R10 + BEQ CONT22 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT22 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;23 + CMP R9, R10 + BEQ CONT23 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT23 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;24 + CMP R9, R10 + BEQ CONT24 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT24 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;25 + CMP R9, R10 + BEQ CONT25 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT25 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;26 + CMP R9, R10 + BEQ CONT26 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT26 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;27 + CMP R9, R10 + BEQ CONT27 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT27 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;28 + CMP R9, R10 + BEQ CONT28 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT28 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;29 + CMP R9, R10 + BEQ CONT29 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT29 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;30 + CMP R9, R10 + BEQ CONT30 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT30 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;31 + CMP R9, R10 + BEQ CONT31 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT31 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;32 + CMP R9, R10 + BEQ CONT32 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT32 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;33 + CMP R9, R10 + BEQ CONT33 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT33 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;34 + CMP R9, R10 + BEQ CONT34 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT34 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;35 + CMP R9, R10 + BEQ CONT35 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT35 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;36 + CMP R9, R10 + BEQ CONT36 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT36 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;37 + CMP R9, R10 + BEQ CONT37 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT37 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;38 + CMP R9, R10 + BEQ CONT38 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT38 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;39 + CMP R9, R10 + BEQ CONT39 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT39 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;40 + CMP R9, R10 + BEQ CONT40 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT40 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;41 + CMP R9, R10 + BEQ CONT41 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT41 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;42 + CMP R9, R10 + BEQ CONT42 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT42 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;43 + CMP R9, R10 + BEQ CONT43 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT43 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;44 + CMP R9, R10 + BEQ CONT44 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT44 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;45 + CMP R9, R10 + BEQ CONT45 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT45 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;46 + CMP R9, R10 + BEQ CONT46 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT46 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;47 + CMP R9, R10 + BEQ CONT47 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT47 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;48 + CMP R9, R10 + BEQ CONT48 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT48 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;49 + CMP R9, R10 + BEQ CONT49 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT49 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;50 + CMP R9, R10 + BEQ CONT50 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT50 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;51 + CMP R9, R10 + BEQ CONT51 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT51 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;52 + CMP R9, R10 + BEQ CONT52 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT52 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;53 + CMP R9, R10 + BEQ CONT53 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT53 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;54 + CMP R9, R10 + BEQ CONT54 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT54 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;55 + CMP R9, R10 + BEQ CONT55 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT55 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;56 + CMP R9, R10 + BEQ CONT56 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT56 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;57 + CMP R9, R10 + BEQ CONT57 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT57 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;58 + CMP R9, R10 + BEQ CONT58 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT58 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;59 + CMP R9, R10 + BEQ CONT59 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT59 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;60 + CMP R9, R10 + BEQ CONT60 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT60 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;61 + CMP R9, R10 + BEQ CONT61 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT61 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;62 + CMP R9, R10 + BEQ CONT62 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT62 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;63 + CMP R9, R10 + BEQ CONT63 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT63 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;64 + CMP R9, R10 + BEQ CONT64 + MOVHI R0, R1 + MOVHI R12, R11 + MOVLO R0, R7 + MOVLO R12, R8 + ADDS R5, R5, R0 + ADC R6, R6, R12 +CONT64 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + STMIA R2, {R3-R6} + LDMED R13!, {R0, R1, R4-R12, PC} |