Revision 01d6a890
b/target-arm/exec.h | ||
---|---|---|
19 | 19 |
*/ |
20 | 20 |
#include "dyngen-exec.h" |
21 | 21 |
|
22 |
#if defined(__sparc__) |
|
23 |
struct CPUARMState *env; |
|
24 |
uint32_t T0; |
|
25 |
uint32_t T1; |
|
26 |
uint32_t T2; |
|
27 |
#else |
|
22 | 28 |
register struct CPUARMState *env asm(AREG0); |
23 | 29 |
register uint32_t T0 asm(AREG1); |
24 | 30 |
register uint32_t T1 asm(AREG2); |
25 | 31 |
register uint32_t T2 asm(AREG3); |
32 |
#endif |
|
26 | 33 |
|
27 | 34 |
/* TODO: Put these in FP regs on targets that have such things. */ |
28 | 35 |
/* It is ok for FT0s and FT0d to overlap. Likewise FT1s and FT1d. */ |
b/target-mips/exec.h | ||
---|---|---|
7 | 7 |
#include "mips-defs.h" |
8 | 8 |
#include "dyngen-exec.h" |
9 | 9 |
|
10 |
#if defined(__sparc__) |
|
11 |
struct CPUMIPSState *env; |
|
12 |
#else |
|
10 | 13 |
register struct CPUMIPSState *env asm(AREG0); |
14 |
#endif |
|
11 | 15 |
|
12 | 16 |
#if defined (USE_64BITS_REGS) |
13 | 17 |
typedef int64_t host_int_t; |
... | ... | |
17 | 21 |
typedef uint32_t host_uint_t; |
18 | 22 |
#endif |
19 | 23 |
|
24 |
#if defined(__sparc__) |
|
25 |
host_uint_t T0; |
|
26 |
host_uint_t T1; |
|
27 |
host_uint_t T2; |
|
28 |
#else |
|
20 | 29 |
#if TARGET_LONG_BITS > HOST_LONG_BITS |
21 | 30 |
#define T0 (env->t0) |
22 | 31 |
#define T1 (env->t1) |
... | ... | |
26 | 35 |
register host_uint_t T1 asm(AREG2); |
27 | 36 |
register host_uint_t T2 asm(AREG3); |
28 | 37 |
#endif |
38 |
#endif |
|
29 | 39 |
|
30 | 40 |
#if defined (USE_HOST_FLOAT_REGS) |
31 | 41 |
#error "implement me." |
b/target-sparc/exec.h | ||
---|---|---|
3 | 3 |
#include "dyngen-exec.h" |
4 | 4 |
#include "config.h" |
5 | 5 |
|
6 |
#if defined(__sparc__) |
|
7 |
struct CPUSPARCState *env; |
|
8 |
#else |
|
6 | 9 |
register struct CPUSPARCState *env asm(AREG0); |
10 |
#endif |
|
11 |
|
|
7 | 12 |
#ifdef TARGET_SPARC64 |
8 | 13 |
#define T0 (env->t0) |
9 | 14 |
#define T1 (env->t1) |
10 | 15 |
#define T2 (env->t2) |
11 | 16 |
#define REGWPTR env->regwptr |
12 | 17 |
#else |
18 |
#if defined(__sparc__) |
|
19 |
register uint32_t T0 asm(AREG3); |
|
20 |
register uint32_t T1 asm(AREG2); |
|
21 |
#else |
|
13 | 22 |
register uint32_t T0 asm(AREG1); |
14 | 23 |
register uint32_t T1 asm(AREG2); |
24 |
#endif |
|
15 | 25 |
|
16 | 26 |
#undef REG_REGWPTR // Broken |
17 | 27 |
#ifdef REG_REGWPTR |
28 |
#if defined(__sparc__) |
|
29 |
register uint32_t *REGWPTR asm(AREG4); |
|
30 |
#else |
|
18 | 31 |
register uint32_t *REGWPTR asm(AREG3); |
32 |
#endif |
|
19 | 33 |
#define reg_REGWPTR |
20 | 34 |
|
21 | 35 |
#ifdef AREG4 |
36 |
#if defined(__sparc__) |
|
37 |
register uint32_t T2 asm(AREG0); |
|
38 |
#else |
|
22 | 39 |
register uint32_t T2 asm(AREG4); |
40 |
#endif |
|
23 | 41 |
#define reg_T2 |
24 | 42 |
#else |
25 | 43 |
#define T2 (env->t2) |
... | ... | |
27 | 45 |
|
28 | 46 |
#else |
29 | 47 |
#define REGWPTR env->regwptr |
48 |
#if defined(__sparc__) |
|
49 |
register uint32_t T2 asm(AREG0); |
|
50 |
#else |
|
30 | 51 |
register uint32_t T2 asm(AREG3); |
52 |
#endif |
|
31 | 53 |
#define reg_T2 |
32 | 54 |
#endif |
33 | 55 |
#endif |
Also available in: Unified diff