1 #ifndef X86_BITS_STRING_H 2 #define X86_BITS_STRING_H 47 __constant_memcpy (
void *
dest,
const void *
src,
size_t len ) {
73 dest_u->u8[0] = src_u->u8[0];
76 dest_u->u16[0] = src_u->u16[0];
79 dest_u->u32[0] = src_u->u32[0];
86 dest_u->u16[0] = src_u->u16[0];
87 dest_u->u8[2] = src_u->u8[2];
90 dest_u->u32[0] = src_u->u32[0];
91 dest_u->u8[4] = src_u->u8[4];
94 dest_u->u32[0] = src_u->u32[0];
95 dest_u->u16[2] = src_u->u16[2];
98 dest_u->u32[0] = src_u->u32[0];
99 dest_u->u32[1] = src_u->u32[1];
131 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
134 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
137 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
140 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
143 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
146 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
147 if ( (
len % 4 ) >= 2 )
149 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
152 :
"0" (
edi ),
"1" (
esi ) :
"memory" );
167 if ( __builtin_constant_p (
len ) ) {
227 __constant_memset_zero (
void *
dest,
size_t len ) {
295 return __memset (
dest, 0,
len );
299 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
302 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
305 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
308 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
311 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
314 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
315 if ( (
len % 4 ) >= 2 )
317 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
318 if ( (
len % 2 ) >= 1 )
320 :
"0" (
edi ),
"1" (
eax ) :
"memory" );
336 if ( __builtin_constant_p (
fill ) && (
fill == 0 ) &&
337 __builtin_constant_p (
len ) ) {
338 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