Back to index

glibc  2.9
Defines
memcopy.h File Reference
#include <sysdeps/generic/memcopy.h>

Go to the source code of this file.

Defines

#define OP_T_THRES   32
#define BYTE_COPY_FWD(dst_bp, src_bp, nbytes)
#define BYTE_COPY_BWD(dst_ep, src_ep, nbytes)
#define WORD_COPY_FWD(dst_bp, src_bp, nbytes_left, nbytes)
#define WORD_COPY_BWD(dst_ep, src_ep, nbytes_left, nbytes)

Define Documentation

#define BYTE_COPY_BWD (   dst_ep,
  src_ep,
  nbytes 
)
Value:
do                                                                   \
    {                                                                \
      size_t __nbytes = (nbytes);                                    \
      dst_ep -= __nbytes;                                            \
      src_ep -= __nbytes;                                            \
      asm volatile("mtspr   1,%2\n"                                         \
                 "lsx              6,0,%1\n"                                \
                 "stsx      6,0,%0" : /* No outputs.  */ :                  \
                 "b" (dst_ep), "b" (src_ep), "r" (__nbytes) :               \
                 "6", "7", "8", "9", "10", "11", "12", "13");               \
    } while (0)

Definition at line 39 of file memcopy.h.

#define BYTE_COPY_FWD (   dst_bp,
  src_bp,
  nbytes 
)
Value:
do                                                                   \
    {                                                                \
      size_t __nbytes = nbytes;                                             \
      asm volatile("mtspr   1,%2\n"                                         \
                 "lsx              6,0,%1\n"                                \
                 "stsx      6,0,%0" : /* No outputs.  */ :                  \
                 "b" (dst_bp), "b" (src_bp), "r" (__nbytes) :               \
                 "6", "7", "8", "9", "10", "11", "12", "13");               \
      dst_bp += __nbytes;                                            \
      src_bp += __nbytes;                                            \
    } while (0)

Definition at line 25 of file memcopy.h.

#define OP_T_THRES   32

Definition at line 22 of file memcopy.h.

#define WORD_COPY_BWD (   dst_ep,
  src_ep,
  nbytes_left,
  nbytes 
)
Value:
do                                                                   \
    {                                                                \
      size_t __nblocks = (nbytes) / 32;                                     \
      if (__nblocks != 0)                                            \
       asm volatile("mtctr  %4\n"                                    \
                   "ai      %1,%1,-32\n"                             \
                   "lsi     6,%1,32\n"                               \
                   "ai      %0,%0,-32\n"                             \
                   "stsi    6,%0,32\n"                               \
                   "bdn     $-16" :                                         \
                   "=b" (dst_ep), "=b" (src_ep) :                           \
                   "0" (dst_ep), "1" (src_ep), "r" (__nblocks) :            \
                   "6", "7", "8", "9", "10", "11", "12", "13");             \
      (nbytes_left) = (nbytes) % 32;                                        \
    } while (0)

Definition at line 71 of file memcopy.h.

#define WORD_COPY_FWD (   dst_bp,
  src_bp,
  nbytes_left,
  nbytes 
)
Value:
do                                                                   \
    {                                                                \
      size_t __nblocks = (nbytes) / 32;                                     \
      if (__nblocks != 0)                                            \
       asm volatile("mtctr  %4\n"                                    \
                   "lsi     6,%1,32\n"                               \
                   "ai      %1,%1,32\n"                              \
                   "stsi    6,%0,32\n"                               \
                   "ai      %0,%0,32\n"                              \
                   "bdn     $-16" :                                         \
                   "=b" (dst_bp), "=b" (src_bp) :                           \
                   "0" (dst_bp), "1" (src_bp), "r" (__nblocks) :            \
                   "6", "7", "8", "9", "10", "11", "12", "13");             \
      (nbytes_left) = (nbytes) % 32;                                        \
    } while (0)

Definition at line 53 of file memcopy.h.