Revision 74c95119 exec-i386.h

b/exec-i386.h
105 105
register unsigned int T0 asm("$9");
106 106
register unsigned int T1 asm("$10");
107 107
register unsigned int A0 asm("$11");
108
register struct CPUX86State *env asm("$12");
108
register unsigned int EAX asm("$12");
109
register unsigned int ESP asm("$13");
110
register unsigned int EBP asm("$14");
111
register struct CPUX86State *env asm("$15");
112
#define reg_EAX
113
#define reg_ESP
114
#define reg_EBP
109 115
#endif
110 116
#ifdef __ia64__
111 117
register unsigned int T0 asm("r24");
......
165 171
#define FP_CONVERT  (env->fp_convert)
166 172
#endif
167 173

  
174
#ifdef __alpha__
175
/* Suggested by Richard Henderson. This will result in code like
176
        ldah $0,__op_param1($29)        !gprelhigh
177
        lda $0,__op_param1($0)          !gprellow
178
   We can then conveniently change $29 to $31 and adapt the offsets to
179
   emit the appropriate constant.  */
180
extern int __op_param1 __attribute__((visibility("hidden")));
181
extern int __op_param2 __attribute__((visibility("hidden")));
182
extern int __op_param3 __attribute__((visibility("hidden")));
183
#define PARAM1 ({ int _r; asm("" : "=r"(_r) : "0" (&__op_param1)); _r; })
184
#define PARAM2 ({ int _r; asm("" : "=r"(_r) : "0" (&__op_param2)); _r; })
185
#define PARAM3 ({ int _r; asm("" : "=r"(_r) : "0" (&__op_param3)); _r; })
186
#else
168 187
extern int __op_param1, __op_param2, __op_param3;
169 188
#define PARAM1 ((long)(&__op_param1))
170 189
#define PARAM2 ((long)(&__op_param2))
171 190
#define PARAM3 ((long)(&__op_param3))
191
#endif
172 192

  
173 193
#include "cpu-i386.h"
174 194

  

Also available in: Unified diff