iPXE
Functions
implicit.c File Reference

gcc sometimes likes to insert implicit calls to memcpy() and memset(). More...

#include <string.h>

Go to the source code of this file.

Functions

void * gcc_implicit_memcpy (void *dest, const void *src, size_t len) asm("memcpy")
 
void * gcc_implicit_memset (void *dest, int character, size_t len) asm("memset")
 

Detailed Description

gcc sometimes likes to insert implicit calls to memcpy() and memset().

Unfortunately, there doesn't seem to be any way to prevent it from doing this, or to force it to use the optimised versions as seen by C code; it insists on inserting symbol references to "memcpy" and "memset". We therefore include wrapper functions just to keep gcc happy.

Definition in file implicit.c.

Function Documentation

◆ gcc_implicit_memcpy()

void * gcc_implicit_memcpy ( void *  dest,
const void *  src,
size_t  len 
)

Definition at line 17 of file implicit.c.

17  {
18  return memcpy ( dest, src, len );
19 }
void * memcpy(void *dest, const void *src, size_t len) __nonnull
static const void * src
Definition: string.h:47
ring len
Length.
Definition: dwmac.h:231
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
Definition: string.h:150

References dest, len, memcpy(), and src.

◆ gcc_implicit_memset()

void * gcc_implicit_memset ( void *  dest,
int  character,
size_t  len 
)

Definition at line 24 of file implicit.c.

24  {
25  return memset ( dest, character, len );
26 }
ring len
Length.
Definition: dwmac.h:231
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
Definition: string.h:150
void * memset(void *dest, int character, size_t len) __nonnull

References dest, len, and memset().