40 lines
858 B
ArmAsm
40 lines
858 B
ArmAsm
/*
|
|
* Copyright (C) 2012 Apple Computer, Inc. All rights reserved.
|
|
*
|
|
* This document is the property of Apple Computer, Inc.
|
|
* It is considered confidential and proprietary.
|
|
*
|
|
* This document may not be reproduced or transmitted in any form,
|
|
* in whole or in part, without the express written permission of
|
|
* Apple Computer, Inc.
|
|
*/
|
|
|
|
/* void memset_16(uint8_t *ptr, uint8_t c, size_t count); */
|
|
.text
|
|
.align 2
|
|
.globl _memset_16
|
|
_memset_16:
|
|
mov x3, x0
|
|
cbz x1, L__memset_16_loop
|
|
orr x1, x1, x1, lsl #8
|
|
orr x1, x1, x1, lsl #16
|
|
orr x1, x1, x1, lsl #32
|
|
L__memset_16_loop:
|
|
stp x1, x1, [x3], #16
|
|
subs x2, x2, #16
|
|
b.gt L__memset_16_loop
|
|
ret
|
|
|
|
/* void bzero_64(uint8_t *ptr, size_t count); */
|
|
.text
|
|
.align 2
|
|
.globl _bzero_64
|
|
_bzero_64:
|
|
mov x2, x0
|
|
L__bzero_64_loop:
|
|
dc zva, x2
|
|
add x2, x2, #64
|
|
subs x1, x1, #64
|
|
b.gt L__bzero_64_loop
|
|
ret
|