Revision 48bb3750 tcg/s390/tcg-target.h
b/tcg/s390/tcg-target.h | ||
---|---|---|
23 | 23 |
*/ |
24 | 24 |
#define TCG_TARGET_S390 1 |
25 | 25 |
|
26 |
#ifdef __s390x__ |
|
26 | 27 |
#define TCG_TARGET_REG_BITS 64 |
28 |
#else |
|
29 |
#define TCG_TARGET_REG_BITS 32 |
|
30 |
#endif |
|
31 |
|
|
27 | 32 |
#define TCG_TARGET_WORDS_BIGENDIAN |
28 | 33 |
|
29 |
enum {
|
|
34 |
typedef enum TCGReg {
|
|
30 | 35 |
TCG_REG_R0 = 0, |
31 | 36 |
TCG_REG_R1, |
32 | 37 |
TCG_REG_R2, |
... | ... | |
43 | 48 |
TCG_REG_R13, |
44 | 49 |
TCG_REG_R14, |
45 | 50 |
TCG_REG_R15 |
46 |
}; |
|
51 |
} TCGReg; |
|
52 |
|
|
47 | 53 |
#define TCG_TARGET_NB_REGS 16 |
48 | 54 |
|
49 | 55 |
/* optional instructions */ |
50 |
// #define TCG_TARGET_HAS_div_i32
|
|
51 |
// #define TCG_TARGET_HAS_rot_i32
|
|
52 |
// #define TCG_TARGET_HAS_ext8s_i32
|
|
53 |
// #define TCG_TARGET_HAS_ext16s_i32
|
|
54 |
// #define TCG_TARGET_HAS_ext8u_i32
|
|
55 |
// #define TCG_TARGET_HAS_ext16u_i32
|
|
56 |
// #define TCG_TARGET_HAS_bswap16_i32
|
|
57 |
// #define TCG_TARGET_HAS_bswap32_i32
|
|
56 |
#define TCG_TARGET_HAS_div2_i32
|
|
57 |
#define TCG_TARGET_HAS_rot_i32 |
|
58 |
#define TCG_TARGET_HAS_ext8s_i32 |
|
59 |
#define TCG_TARGET_HAS_ext16s_i32 |
|
60 |
#define TCG_TARGET_HAS_ext8u_i32 |
|
61 |
#define TCG_TARGET_HAS_ext16u_i32 |
|
62 |
#define TCG_TARGET_HAS_bswap16_i32 |
|
63 |
#define TCG_TARGET_HAS_bswap32_i32 |
|
58 | 64 |
// #define TCG_TARGET_HAS_not_i32 |
59 |
// #define TCG_TARGET_HAS_neg_i32
|
|
65 |
#define TCG_TARGET_HAS_neg_i32 |
|
60 | 66 |
// #define TCG_TARGET_HAS_andc_i32 |
61 | 67 |
// #define TCG_TARGET_HAS_orc_i32 |
62 | 68 |
// #define TCG_TARGET_HAS_eqv_i32 |
63 | 69 |
// #define TCG_TARGET_HAS_nand_i32 |
64 | 70 |
// #define TCG_TARGET_HAS_nor_i32 |
65 | 71 |
|
66 |
// #define TCG_TARGET_HAS_div_i64 |
|
67 |
// #define TCG_TARGET_HAS_rot_i64 |
|
68 |
// #define TCG_TARGET_HAS_ext8s_i64 |
|
69 |
// #define TCG_TARGET_HAS_ext16s_i64 |
|
70 |
// #define TCG_TARGET_HAS_ext32s_i64 |
|
71 |
// #define TCG_TARGET_HAS_ext8u_i64 |
|
72 |
// #define TCG_TARGET_HAS_ext16u_i64 |
|
73 |
// #define TCG_TARGET_HAS_ext32u_i64 |
|
74 |
// #define TCG_TARGET_HAS_bswap16_i64 |
|
75 |
// #define TCG_TARGET_HAS_bswap32_i64 |
|
76 |
// #define TCG_TARGET_HAS_bswap64_i64 |
|
72 |
#if TCG_TARGET_REG_BITS == 64 |
|
73 |
#define TCG_TARGET_HAS_div2_i64 |
|
74 |
#define TCG_TARGET_HAS_rot_i64 |
|
75 |
#define TCG_TARGET_HAS_ext8s_i64 |
|
76 |
#define TCG_TARGET_HAS_ext16s_i64 |
|
77 |
#define TCG_TARGET_HAS_ext32s_i64 |
|
78 |
#define TCG_TARGET_HAS_ext8u_i64 |
|
79 |
#define TCG_TARGET_HAS_ext16u_i64 |
|
80 |
#define TCG_TARGET_HAS_ext32u_i64 |
|
81 |
#define TCG_TARGET_HAS_bswap16_i64 |
|
82 |
#define TCG_TARGET_HAS_bswap32_i64 |
|
83 |
#define TCG_TARGET_HAS_bswap64_i64 |
|
77 | 84 |
// #define TCG_TARGET_HAS_not_i64 |
78 |
// #define TCG_TARGET_HAS_neg_i64
|
|
85 |
#define TCG_TARGET_HAS_neg_i64 |
|
79 | 86 |
// #define TCG_TARGET_HAS_andc_i64 |
80 | 87 |
// #define TCG_TARGET_HAS_orc_i64 |
81 | 88 |
// #define TCG_TARGET_HAS_eqv_i64 |
82 | 89 |
// #define TCG_TARGET_HAS_nand_i64 |
83 | 90 |
// #define TCG_TARGET_HAS_nor_i64 |
91 |
#endif |
|
92 |
|
|
93 |
#define TCG_TARGET_HAS_GUEST_BASE |
|
84 | 94 |
|
85 | 95 |
/* used for function call generation */ |
86 | 96 |
#define TCG_REG_CALL_STACK TCG_REG_R15 |
Also available in: Unified diff