1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28: #if defined(DECLARE_HOST_REGS)
29:
30: #define DO_REG(REG) \
31: register host_reg_t reg_AREG##REG asm(AREG##REG); \
32: volatile host_reg_t saved_AREG##REG;
33:
34: #elif defined(SAVE_HOST_REGS)
35:
36: #define DO_REG(REG) \
37: __asm__ __volatile__ ("" : "=r" (reg_AREG##REG)); \
38: saved_AREG##REG = reg_AREG##REG;
39:
40: #else
41:
42: #define DO_REG(REG) \
43: reg_AREG##REG = saved_AREG##REG; \
44: __asm__ __volatile__ ("" : : "r" (reg_AREG##REG));
45:
46: #endif
47:
48: #ifdef AREG0
49: DO_REG(0)
50: #endif
51:
52: #ifdef AREG1
53: DO_REG(1)
54: #endif
55:
56: #ifdef AREG2
57: DO_REG(2)
58: #endif
59:
60: #ifdef AREG3
61: DO_REG(3)
62: #endif
63:
64: #ifdef AREG4
65: DO_REG(4)
66: #endif
67:
68: #ifdef AREG5
69: DO_REG(5)
70: #endif
71:
72: #ifdef AREG6
73: DO_REG(6)
74: #endif
75:
76: #ifdef AREG7
77: DO_REG(7)
78: #endif
79:
80: #ifdef AREG8
81: DO_REG(8)
82: #endif
83:
84: #ifdef AREG9
85: DO_REG(9)
86: #endif
87:
88: #ifdef AREG10
89: DO_REG(10)
90: #endif
91:
92: #ifdef AREG11
93: DO_REG(11)
94: #endif
95:
96: #undef SAVE_HOST_REGS
97: #undef DECLARE_HOST_REGS
98: #undef DO_REG