-;------------------------------------------------------------------------------ \r
+;------------------------------------------------------------------------------\r
;\r
; SetMem() worker for ARM\r
;\r
; 32-bit aligned, else it does a byte copy. It also does a byte copy for\r
; any trailing bytes. Update to use VSTM/VLDM to do 128 byte writes.\r
;\r
-; Copyright (c) 2008-2010 Apple Inc. All rights reserved.<BR>\r
-; All rights reserved. This program and the accompanying materials\r
+; Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>\r
+; This program and the accompanying materials\r
; are licensed and made available under the terms and conditions of the BSD License\r
; which accompanies this distribution. The full text of the license may be found at\r
; http://opensource.org/licenses/bsd-license.php\r
IN UINT8 Value\r
)\r
**/\r
- \r
- EXPORT InternalMemSetMem\r
- \r
- AREA AsmMemStuff, CODE, READONLY
\r
-InternalMemSetMem\r
- stmfd sp!, {lr}\r
- tst r0, #3\r
- movne r3, #0\r
- moveq r3, #1\r
- cmp r1, #127\r
- movls lr, #0\r
- andhi lr, r3, #1\r
- cmp lr, #0\r
- mov r12, r0\r
- bne L31\r
+\r
+ INCLUDE AsmMacroExport.inc\r
+\r
+ RVCT_ASM_EXPORT InternalMemSetMem\r
+ stmfd sp!, {lr}\r
+ tst r0, #3\r
+ movne r3, #0\r
+ moveq r3, #1\r
+ cmp r1, #127\r
+ movls lr, #0\r
+ andhi lr, r3, #1\r
+ cmp lr, #0\r
+ mov r12, r0\r
+ bne L31\r
L32\r
- mov r3, #0\r
- b L43\r
+ mov r3, #0\r
+ b L43\r
L31\r
vdup.8 q0,r2\r
vmov q1,q0\r
vmov q5,q0\r
vmov q6,q0\r
vmov q7,q0\r
- b L32\r
+ b L32\r
L34\r
- cmp lr, #0\r
- streqb r2, [r12], #1\r
- subeq r1, r1, #1\r
- beq L43\r
- sub r1, r1, #128\r
- cmp r1, #127\r
- movls lr, r3\r
- vstm r12!, {d0-d15}\r
+ cmp lr, #0\r
+ streqb r2, [r12], #1\r
+ subeq r1, r1, #1\r
+ beq L43\r
+ sub r1, r1, #128\r
+ cmp r1, #127\r
+ movls lr, r3\r
+ vstm r12!, {d0-d15}\r
L43\r
- cmp r1, #0\r
- bne L34\r
- ldmfd sp!, {pc}\r
- \r
+ cmp r1, #0\r
+ bne L34\r
+ ldmfd sp!, {pc}\r
+\r
END\r
-
\ No newline at end of file