Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Code Less, Create More

Name: Anonymous 2011-08-27 22:12

Assembly:

repne movsd


C/C++:

while (ecx--) { *((int*)edi++)[0] = ((int*)esi++)[0]; }

Name: Anonymous 2011-08-28 7:09

#define _HAVE_STRING_ARCH_memmove 1
#ifndef _FORCE_INLINES
/* Copy N bytes of SRC to DEST, guaranteeing                                                                                                                                                                                                  
   correct behavior for overlapping strings.  */
#define memmove(dest, src, n) __memmove_g (dest, src, n)

__STRING_INLINE void *__memmove_g (void *, __const void *, size_t)
     __asm__ ("memmove");

__STRING_INLINE void *
__memmove_g (void *__dest, __const void *__src, size_t __n)
{
  register unsigned long int __d0, __d1, __d2;
  register void *__tmp = __dest;
  if (__dest < __src)
    __asm__ __volatile__
      ("cld\n\t"
       "rep; movsb"
       : "=&c" (__d0), "=&S" (__d1), "=&D" (__d2),
         "=m" ( *(struct { __extension__ char __x[__n]; } *)__dest)
       : "0" (__n), "1" (__src), "2" (__tmp),
         "m" ( *(struct { __extension__ char __x[__n]; } *)__src));
  else
    __asm__ __volatile__
      ("std\n\t"
       "rep; movsb\n\t"
       "cld"
       : "=&c" (__d0), "=&S" (__d1), "=&D" (__d2),
         "=m" ( *(struct { __extension__ char __x[__n]; } *)__dest)
       : "0" (__n), "1" (__n - 1 + (__const char *) __src),
         "2" (__n - 1 + (char *) __tmp),
         "m" ( *(struct { __extension__ char __x[__n]; } *)__src));
  return __dest;
}
#endif

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List