diff options
Diffstat (limited to 'arch/m68k/include/asm/movs.h')
-rw-r--r-- | arch/m68k/include/asm/movs.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/arch/m68k/include/asm/movs.h b/arch/m68k/include/asm/movs.h new file mode 100644 index 000000000000..67dbea36960f --- /dev/null +++ b/arch/m68k/include/asm/movs.h | |||
@@ -0,0 +1,55 @@ | |||
1 | #ifndef __MOVS_H__ | ||
2 | #define __MOVS_H__ | ||
3 | |||
4 | /* | ||
5 | ** movs.h | ||
6 | ** | ||
7 | ** Inline assembly macros to generate movs & related instructions | ||
8 | */ | ||
9 | |||
10 | /* Set DFC register value */ | ||
11 | |||
12 | #define SET_DFC(x) \ | ||
13 | __asm__ __volatile__ (" movec %0,%/dfc" : : "d" (x)); | ||
14 | |||
15 | /* Get DFC register value */ | ||
16 | |||
17 | #define GET_DFC(x) \ | ||
18 | __asm__ __volatile__ (" movec %/dfc, %0" : "=d" (x) : ); | ||
19 | |||
20 | /* Set SFC register value */ | ||
21 | |||
22 | #define SET_SFC(x) \ | ||
23 | __asm__ __volatile__ (" movec %0,%/sfc" : : "d" (x)); | ||
24 | |||
25 | /* Get SFC register value */ | ||
26 | |||
27 | #define GET_SFC(x) \ | ||
28 | __asm__ __volatile__ (" movec %/sfc, %0" : "=d" (x) : ); | ||
29 | |||
30 | #define SET_VBR(x) \ | ||
31 | __asm__ __volatile__ (" movec %0,%/vbr" : : "r" (x)); | ||
32 | |||
33 | #define GET_VBR(x) \ | ||
34 | __asm__ __volatile__ (" movec %/vbr, %0" : "=g" (x) : ); | ||
35 | |||
36 | /* Set a byte using the "movs" instruction */ | ||
37 | |||
38 | #define SET_CONTROL_BYTE(addr,value) \ | ||
39 | __asm__ __volatile__ (" movsb %0, %1@" : : "d" (value), "a" (addr)); | ||
40 | |||
41 | /* Get a byte using the "movs" instruction */ | ||
42 | |||
43 | #define GET_CONTROL_BYTE(addr,value) \ | ||
44 | __asm__ __volatile__ (" movsb %1@, %0" : "=d" (value) : "a" (addr)); | ||
45 | |||
46 | /* Set a (long)word using the "movs" instruction */ | ||
47 | |||
48 | #define SET_CONTROL_WORD(addr,value) \ | ||
49 | __asm__ __volatile__ (" movsl %0, %1@" : : "d" (value), "a" (addr)); | ||
50 | |||
51 | /* Get a (long)word using the "movs" instruction */ | ||
52 | |||
53 | #define GET_CONTROL_WORD(addr,value) \ | ||
54 | __asm__ __volatile__ (" movsl %1@, %0" : "=d" (value) : "a" (addr)); | ||
55 | #endif | ||