mirror of
https://github.com/intel/linux-sgx
synced 2026-06-08 14:49:32 +00:00
73b8b57aea
Added more logs in PSW components for identifying issues. Upgraded OpenSSL and SgxSSL to latest version 1.1.1i in DCAP components. Added data base migration support in PCCS. Fixed bugs. Signed-off-by: Li, Xun <xun.li@intel.com>
59 lines
1.0 KiB
ArmAsm
59 lines
1.0 KiB
ArmAsm
/*
|
|
* Written by J.T. Conklin <jtc@netbsd.org>.
|
|
* Public domain.
|
|
* Adapted for NetBSD/x86_64 by Frank van der Linden <fvdl@wasabisystems.com>
|
|
*/
|
|
|
|
#include "DEFS.h"
|
|
|
|
ENTRY(__memset)
|
|
RETGUARD_SETUP(__memset, r10)
|
|
movq %rsi,%rax
|
|
andq $0xff,%rax
|
|
movq %rdx,%rcx
|
|
movq %rdi,%r11
|
|
|
|
cld /* set fill direction forward */
|
|
|
|
/*
|
|
* if the string is too short, it's really not worth the overhead
|
|
* of aligning to word boundaries, etc. So we jump to a plain
|
|
* unaligned set.
|
|
*/
|
|
cmpq $0x0f,%rcx
|
|
jle L1
|
|
|
|
movb %al,%ah /* copy char to all bytes in word */
|
|
movl %eax,%edx
|
|
sall $16,%eax
|
|
orl %edx,%eax
|
|
|
|
movl %eax,%edx
|
|
salq $32,%rax
|
|
orq %rdx,%rax
|
|
|
|
movq %rdi,%rdx /* compute misalignment */
|
|
negq %rdx
|
|
andq $7,%rdx
|
|
movq %rcx,%r8
|
|
subq %rdx,%r8
|
|
|
|
movq %rdx,%rcx /* set until word aligned */
|
|
rep
|
|
stosb
|
|
|
|
movq %r8,%rcx
|
|
shrq $3,%rcx /* set by words */
|
|
rep
|
|
stosq
|
|
|
|
movq %r8,%rcx /* set remainder by bytes */
|
|
andq $7,%rcx
|
|
L1: rep
|
|
stosb
|
|
movq %r11,%rax
|
|
|
|
RETGUARD_CHECK(memset, r10)
|
|
ret
|
|
END_BUILTIN(__memset)
|