root/arch/m68k/include/asm/movs.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef  __MOVS_H__
   3 #define __MOVS_H__
   4 
   5 /*
   6 ** movs.h
   7 **
   8 ** Inline assembly macros to generate movs & related instructions
   9 */
  10 
  11 /* Set DFC register value */
  12 
  13 #define SET_DFC(x) \
  14         __asm__ __volatile__ (" movec %0,%/dfc" : : "d" (x));
  15 
  16 /* Get DFC register value */
  17 
  18 #define GET_DFC(x) \
  19         __asm__ __volatile__ (" movec %/dfc, %0" : "=d" (x) : );
  20 
  21 /* Set SFC register value */
  22 
  23 #define SET_SFC(x) \
  24         __asm__ __volatile__ (" movec %0,%/sfc" : : "d" (x));
  25 
  26 /* Get SFC register value */
  27 
  28 #define GET_SFC(x) \
  29         __asm__ __volatile__ (" movec %/sfc, %0" : "=d" (x) : );
  30 
  31 #define SET_VBR(x) \
  32         __asm__ __volatile__ (" movec %0,%/vbr" : : "r" (x));
  33 
  34 #define GET_VBR(x) \
  35         __asm__ __volatile__ (" movec %/vbr, %0" : "=g" (x) : );
  36 
  37 /* Set a byte using the "movs" instruction */
  38 
  39 #define SET_CONTROL_BYTE(addr,value) \
  40         __asm__ __volatile__ (" movsb %0, %1@" : : "d" (value), "a" (addr));
  41 
  42 /* Get a byte using the "movs" instruction */
  43 
  44 #define GET_CONTROL_BYTE(addr,value) \
  45         __asm__ __volatile__ (" movsb %1@, %0" : "=d" (value) : "a" (addr));
  46 
  47 /* Set a (long)word using the "movs" instruction */
  48 
  49 #define SET_CONTROL_WORD(addr,value) \
  50         __asm__ __volatile__ (" movsl %0, %1@" : : "d" (value), "a" (addr));
  51 
  52 /* Get a (long)word using the "movs" instruction */
  53 
  54 #define GET_CONTROL_WORD(addr,value) \
  55         __asm__ __volatile__ (" movsl %1@, %0" : "=d" (value) : "a" (addr));
  56 #endif

/* [<][>][^][v][top][bottom][index][help] */