00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #if defined(DECLARE_HOST_REGS)
00029
00030 #define DO_REG(REG) \
00031 register host_reg_t reg_AREG##REG asm(AREG##REG); \
00032 volatile host_reg_t saved_AREG##REG;
00033
00034 #elif defined(SAVE_HOST_REGS)
00035
00036 #define DO_REG(REG) \
00037 __asm__ __volatile__ ("" : "=r" (reg_AREG##REG)); \
00038 saved_AREG##REG = reg_AREG##REG;
00039
00040 #else
00041
00042 #define DO_REG(REG) \
00043 reg_AREG##REG = saved_AREG##REG; \
00044 __asm__ __volatile__ ("" : : "r" (reg_AREG##REG));
00045
00046 #endif
00047
00048 #ifdef AREG0
00049 DO_REG(0)
00050 #endif
00051
00052 #ifdef AREG1
00053 DO_REG(1)
00054 #endif
00055
00056 #ifdef AREG2
00057 DO_REG(2)
00058 #endif
00059
00060 #ifdef AREG3
00061 DO_REG(3)
00062 #endif
00063
00064 #ifdef AREG4
00065 DO_REG(4)
00066 #endif
00067
00068 #ifdef AREG5
00069 DO_REG(5)
00070 #endif
00071
00072 #ifdef AREG6
00073 DO_REG(6)
00074 #endif
00075
00076 #ifdef AREG7
00077 DO_REG(7)
00078 #endif
00079
00080 #ifdef AREG8
00081 DO_REG(8)
00082 #endif
00083
00084 #ifdef AREG9
00085 DO_REG(9)
00086 #endif
00087
00088 #ifdef AREG10
00089 DO_REG(10)
00090 #endif
00091
00092 #ifdef AREG11
00093 DO_REG(11)
00094 #endif
00095
00096 #undef SAVE_HOST_REGS
00097 #undef DECLARE_HOST_REGS
00098 #undef DO_REG