Revert last change. Bug noticed by Linus.
[linux-2.6/linux-mips.git] / include / asm-m68k / movs.h
blob540d3e60e7161afbe1135eaa02df1358f9434817
1 #ifndef __MOVS_H__
2 #define __MOVS_H__
4 /*
5 ** movs.h
6 **
7 ** Inline assembly macros to generate movs & related instructions
8 */
10 /* Set DFC register value */
12 #define SET_DFC(x) \
13 __asm__ __volatile__ ("movec %0,%%dfc" : : "r" (x))
15 /* Get DFC register value */
17 #define GET_DFC(x) \
18 __asm__ __volatile__ ("movec %%dfc,%0" : "=r" (x))
20 /* Set SFC register value */
22 #define SET_SFC(x) \
23 __asm__ __volatile__ ("movec %0,%%sfc" : : "r" (x))
25 /* Get SFC register value */
27 #define GET_SFC(x) \
28 __asm__ __volatile__ ("movec %%sfc,%0" : "=r" (x))
30 #define SET_VBR(x) \
31 __asm__ __volatile__ ("movec %0,%%vbr" : : "r" (x))
33 #define GET_VBR(x) \
34 __asm__ __volatile__ ("movec %%vbr,%0" : "=r" (x))
36 /* Set a byte using the "moves" instruction */
38 #define SET_CONTROL_BYTE(addr,value) \
39 __asm__ __volatile__ ("movesb %1,%0" : "=m" (addr) : "d" (value))
41 /* Get a byte using the "moves" instruction */
43 #define GET_CONTROL_BYTE(addr,value) \
44 __asm__ __volatile__ ("movesb %1,%0" : "=d" (value) : "m" (addr))
46 /* Set a (long)word using the "moves" instruction */
48 #define SET_CONTROL_WORD(addr,value) \
49 __asm__ __volatile__ ("movesl %1,%0" : "=m" (addr) : "r" (value))
51 /* Get a (long)word using the "moves" instruction */
53 #define GET_CONTROL_WORD(addr,value) \
54 __asm__ __volatile__ ("movesl %1,%0" : "=d" (value) : "m" (addr))
55 #endif