Revision 1e4840bf target-i386/exec.h
b/target-i386/exec.h | ||
---|---|---|
29 | 29 |
|
30 | 30 |
#include "cpu-defs.h" |
31 | 31 |
|
32 |
/* at least 4 register variables are defined */ |
|
33 | 32 |
register struct CPUX86State *env asm(AREG0); |
34 | 33 |
|
35 |
#ifndef CPU_NO_GLOBAL_REGS |
|
36 |
|
|
37 |
#if TARGET_LONG_BITS > HOST_LONG_BITS |
|
38 |
|
|
39 |
/* no registers can be used */ |
|
40 |
#define T0 (env->t0) |
|
41 |
#define T1 (env->t1) |
|
42 |
#define T2 (env->t2) |
|
43 |
|
|
44 |
#else |
|
45 |
|
|
46 |
/* XXX: use unsigned long instead of target_ulong - better code will |
|
47 |
be generated for 64 bit CPUs */ |
|
48 |
register target_ulong T0 asm(AREG1); |
|
49 |
register target_ulong T1 asm(AREG2); |
|
50 |
register target_ulong T2 asm(AREG3); |
|
51 |
|
|
52 |
#endif /* ! (TARGET_LONG_BITS > HOST_LONG_BITS) */ |
|
53 |
|
|
54 |
#endif /* ! CPU_NO_GLOBAL_REGS */ |
|
55 |
|
|
56 |
#define A0 T2 |
|
57 |
|
|
58 | 34 |
extern FILE *logfile; |
59 | 35 |
extern int loglevel; |
60 | 36 |
|
61 |
#ifndef reg_EAX |
|
62 | 37 |
#define EAX (env->regs[R_EAX]) |
63 |
#endif |
|
64 |
#ifndef reg_ECX |
|
65 | 38 |
#define ECX (env->regs[R_ECX]) |
66 |
#endif |
|
67 |
#ifndef reg_EDX |
|
68 | 39 |
#define EDX (env->regs[R_EDX]) |
69 |
#endif |
|
70 |
#ifndef reg_EBX |
|
71 | 40 |
#define EBX (env->regs[R_EBX]) |
72 |
#endif |
|
73 |
#ifndef reg_ESP |
|
74 | 41 |
#define ESP (env->regs[R_ESP]) |
75 |
#endif |
|
76 |
#ifndef reg_EBP |
|
77 | 42 |
#define EBP (env->regs[R_EBP]) |
78 |
#endif |
|
79 |
#ifndef reg_ESI |
|
80 | 43 |
#define ESI (env->regs[R_ESI]) |
81 |
#endif |
|
82 |
#ifndef reg_EDI |
|
83 | 44 |
#define EDI (env->regs[R_EDI]) |
84 |
#endif |
|
85 |
#define EIP (env->eip) |
|
45 |
#define EIP (env->eip) |
|
86 | 46 |
#define DF (env->df) |
87 | 47 |
|
88 | 48 |
#define CC_SRC (env->cc_src) |
Also available in: Unified diff