1 #ifndef X86_BITS_STRING_H 2 #define X86_BITS_STRING_H 48 __constant_memcpy (
void *
dest,
const void *
src,
size_t len ) {
74 dest_u->u8[0] = src_u->u8[0];
77 dest_u->u16[0] = src_u->u16[0];
80 dest_u->u32[0] = src_u->u32[0];
87 dest_u->u16[0] = src_u->u16[0];
88 dest_u->u8[2] = src_u->u8[2];
91 dest_u->u32[0] = src_u->u32[0];
92 dest_u->u8[4] = src_u->u8[4];
95 dest_u->u32[0] = src_u->u32[0];
96 dest_u->u16[2] = src_u->u16[2];
99 dest_u->u32[0] = src_u->u32[0];
100 dest_u->u32[1] = src_u->u32[1];
132 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
135 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
138 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
141 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
144 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
147 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
148 if ( (
len % 4 ) >= 2 )
150 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
153 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
168 if ( __builtin_constant_p (
len ) ) {
228 __constant_memset_zero (
void *
dest,
size_t len ) {
296 return __memset (
dest, 0,
len );
300 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
303 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
306 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
309 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
312 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
315 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
316 if ( (
len % 4 ) >= 2 )
318 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
319 if ( (
len % 2 ) >= 1 )
321 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
337 if ( __builtin_constant_p (
fill ) && (
fill == 0 ) &&
338 __builtin_constant_p (
len ) ) {
339 return __constant_memset_zero (
dest,
len );
static const void size_t len
static __attribute__((always_inline)) void *__constant_memcpy(void *dest
Copy memory area (where length is a compile-time constant)
void * __memmove(void *dest, const void *src, size_t len)
Copy (possibly overlapping) memory area.
void * memcpy(void *dest, const void *src, size_t len) __nonnull
void * __memcpy_reverse(void *dest, const void *src, size_t len)
__asm__ __volatile__("rep stosb" :"=&D"(discard_D), "=&c"(discard_c) :"0"(dest), "1"(len), "a"(fill) :"memory")
void * memmove(void *dest, const void *src, size_t len) __nonnull
__asm__(".section \".rodata\", \"a\", " PROGBITS "\n\t" "\nprivate_key_data:\n\t" ".size private_key_data, ( . - private_key_data )\n\t" ".equ private_key_len, ( . - private_key_data )\n\t" ".previous\n\t")
void * __memcpy(void *dest, const void *src, size_t len)
if(len >=6 *4) __asm__ __volatile__("movsl" if(len >=5 *4) __asm__ __volatile__("movsl" if(len >=4 *4) __asm__ __volatile__("movsl" if(len >=3 *4) __asm__ __volatile__("movsl" if(len >=2 *4) __asm__ __volatile__("movsl" if(len >=1 *4) __asm__ __volatile__("movsl" if((len % 4) >=2) __asm__ __volatile__("movsw" if((len % 2) >=1) __asm__ __volatile__("movsb" return dest
uint16_t offset
Offset to command line.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
void * memset(void *dest, int character, size_t len) __nonnull