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