aboutsummaryrefslogtreecommitdiffstats
path: root/ARM_assembly/MultProject/test2.s
diff options
context:
space:
mode:
authorzedarider <ymherklotz@gmail.com>2016-02-26 21:40:24 +0000
committerzedarider <ymherklotz@gmail.com>2016-02-26 21:40:24 +0000
commit6d8f08b4727e5630e547d0afbf39c819a43945f6 (patch)
tree1f3fcb0185e339aa7cd7a14ece31c4fa474de9a1 /ARM_assembly/MultProject/test2.s
parent110c42733ff3decdb62bc4347626489a2677d99b (diff)
downloadimperial_2015-6d8f08b4727e5630e547d0afbf39c819a43945f6.tar.gz
imperial_2015-6d8f08b4727e5630e547d0afbf39c819a43945f6.zip
Adding ARM Assembly files
Diffstat (limited to 'ARM_assembly/MultProject/test2.s')
-rw-r--r--ARM_assembly/MultProject/test2.s174
1 files changed, 174 insertions, 0 deletions
diff --git a/ARM_assembly/MultProject/test2.s b/ARM_assembly/MultProject/test2.s
new file mode 100644
index 0000000..8cdd69a
--- /dev/null
+++ b/ARM_assembly/MultProject/test2.s
@@ -0,0 +1,174 @@
+AIN DCD 0X7FFFFFFF,0X0
+BIN DCD 0X7FFFFFFF,0X0
+ ; DCD 0X1,0X3FFFFFFF,0X0,0X0
+OUT FILL 4*4
+
+ LDR R0, =AIN
+ LDR R1, =BIN
+ LDR R2, =OUT
+ BL SMUL64X64
+ END
+
+SMUL64X64 STMED R13!, {R4-R12, LR}
+ LDR R3, [R0]
+ LDR R4, [R0, #4]
+ MOV R5, #0
+ MOV R6, #0
+ LDR R7, [R1]
+ LDR R8, [R1, #4]
+ MOV R10, #0
+ MOV R11, #7
+ AND R9, R3, #1 ;1
+ CMP R9, R10
+ BHI SU1
+ BLO AD1
+ B CONT1
+SU1 SUBS R5, R5, R7
+ SBC R6, R6, R8
+ B CONT1
+AD1 ADDS R5, R5, R7
+ ADC R6, R6, R8
+CONT1 MOVS R6, R6, ASR #1
+ MOVS R5, R5, RRX
+ MOVS R4, R4, RRX
+ MOVS R3, R3, RRX
+ MOV R10, R9
+MULT AND R9, R3, #1 ;2
+ CMP R9, R10
+ BHI SU2
+ BLO AD2
+ B CONT2
+SU2 SUBS R5, R5, R7
+ SBC R6, R6, R8
+ B CONT2
+AD2 ADDS R5, R5, R7
+ ADC R6, R6, R8
+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
+ BHI SU3
+ BLO AD3
+ B CONT3
+SU3 SUBS R5, R5, R7
+ SBC R6, R6, R8
+ B CONT3
+AD3 ADDS R5, R5, R7
+ ADC R6, R6, R8
+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
+ BHI SU4
+ BLO AD4
+ B CONT4
+SU4 SUBS R5, R5, R7
+ SBC R6, R6, R8
+ B CONT4
+AD4 ADDS R5, R5, R7
+ ADC R6, R6, R8
+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
+ BHI SU5
+ BLO AD5
+ B CONT5
+SU5 SUBS R5, R5, R7
+ SBC R6, R6, R8
+ B CONT5
+AD5 ADDS R5, R5, R7
+ ADC R6, R6, R8
+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
+ BHI SU6
+ BLO AD6
+ B CONT6
+SU6 SUBS R5, R5, R7
+ SBC R6, R6, R8
+ B CONT6
+AD6 ADDS R5, R5, R7
+ ADC R6, R6, R8
+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
+ BHI SU7
+ BLO AD7
+ B CONT7
+SU7 SUBS R5, R5, R7
+ SBC R6, R6, R8
+ B CONT7
+AD7 ADDS R5, R5, R7
+ ADC R6, R6, R8
+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
+ BHI SU8
+ BLO AD8
+ B CONT8
+SU8 SUBS R5, R5, R7
+ SBC R6, R6, R8
+ B CONT8
+AD8 ADDS R5, R5, R7
+ ADC R6, R6, R8
+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
+ BHI SU9
+ BLO AD9
+ B CONT9
+SU9 SUBS R5, R5, R7
+ SBC R6, R6, R8
+ B CONT9
+AD9 ADDS R5, R5, R7
+ ADC R6, R6, R8
+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
+ BHI SU10
+ BLO AD10
+ B CONT10
+SU10 SUBS R5, R5, R7
+ SBC R6, R6, R8
+ B CONT10
+AD10 ADDS R5, R5, R7
+ ADC R6, R6, R8
+CONT10 MOVS R6, R6, ASR #1
+ MOVS R5, R5, RRX
+ MOVS R4, R4, RRX
+ MOVS R3, R3, RRX
+ MOV R10, R9
+ SUBS R11, R11, #1
+ BNE MULT
+ STMIA R2, {R3-R6}
+ LDMED R13!, {R4-R12, PC}