)\r
**/\r
EXPORT InternalMemCopyMem\r
-
- AREA AsmMemStuff, CODE, READONLY
+\r
+ AREA AsmMemStuff, CODE, READONLY\r
\r
InternalMemCopyMem\r
- stmfd sp!, {r4, r9, lr}
- tst r0, #3
- mov r4, r0
- mov r9, r0
- mov ip, r2
- mov lr, r1
- movne r0, #0
- bne L4
- tst r1, #3
- movne r3, #0
- moveq r3, #1
- cmp r2, #127
- movls r0, #0
- andhi r0, r3, #1
-L4
- cmp r4, r1
- bcc L26
- bls L7
- rsb r3, r1, r4
- cmp ip, r3
- bcc L26
- cmp ip, #0
- beq L7
- add r9, r4, ip
- add lr, ip, r1
- b L16
-L29
- sub ip, ip, #8
- cmp ip, #7
- ldrd r2, [lr, #-8]!
- movls r0, #0
- cmp ip, #0
- strd r2, [r9, #-8]!
- beq L7
-L16
- cmp r0, #0
- bne L29
- sub r3, lr, #1
- sub ip, ip, #1
- ldrb r3, [r3, #0]
- sub r2, r9, #1
- cmp ip, #0
- sub r9, r9, #1
- sub lr, lr, #1
- strb r3, [r2, #0]
- bne L16
- b L7
-L11
- ldrb r3, [lr], #1
- sub ip, ip, #1
- strb r3, [r9], #1
-L26
- cmp ip, #0
- beq L7
-L30
- cmp r0, #0
- beq L11
- sub ip, ip, #128 // 32
- cmp ip, #127 // 31
- vldm lr!, {d0-d15}
- movls r0, #0
- cmp ip, #0
- vstm r9!, {d0-d15}
- bne L30
-L7
- dsb
- mov r0, r4
- ldmfd sp!, {r4, r9, pc}
+ stmfd sp!, {r4, r9, lr}\r
+ tst r0, #3\r
+ mov r4, r0\r
+ mov r9, r0\r
+ mov ip, r2\r
+ mov lr, r1\r
+ movne r0, #0\r
+ bne L4\r
+ tst r1, #3\r
+ movne r3, #0\r
+ moveq r3, #1\r
+ cmp r2, #127\r
+ movls r0, #0\r
+ andhi r0, r3, #1\r
+L4\r
+ cmp r4, r1\r
+ bcc L26\r
+ bls L7\r
+ rsb r3, r1, r4\r
+ cmp ip, r3\r
+ bcc L26\r
+ cmp ip, #0\r
+ beq L7\r
+ add r9, r4, ip\r
+ add lr, ip, r1\r
+ b L16\r
+L29\r
+ sub ip, ip, #8\r
+ cmp ip, #7\r
+ ldrd r2, [lr, #-8]!\r
+ movls r0, #0\r
+ cmp ip, #0\r
+ strd r2, [r9, #-8]!\r
+ beq L7\r
+L16\r
+ cmp r0, #0\r
+ bne L29\r
+ sub r3, lr, #1\r
+ sub ip, ip, #1\r
+ ldrb r3, [r3, #0] \r
+ sub r2, r9, #1\r
+ cmp ip, #0\r
+ sub r9, r9, #1\r
+ sub lr, lr, #1\r
+ strb r3, [r2, #0]\r
+ bne L16\r
+ b L7\r
+L11\r
+ ldrb r3, [lr], #1 \r
+ sub ip, ip, #1\r
+ strb r3, [r9], #1\r
+L26\r
+ cmp ip, #0\r
+ beq L7\r
+L30\r
+ cmp r0, #0\r
+ beq L11\r
+ sub ip, ip, #128 // 32\r
+ cmp ip, #127 // 31\r
+ vldm lr!, {d0-d15}\r
+ movls r0, #0\r
+ cmp ip, #0\r
+ vstm r9!, {d0-d15}\r
+ bne L30\r
+L7\r
+ dsb\r
+ mov r0, r4\r
+ ldmfd sp!, {r4, r9, pc}\r
\r
END\r
\r