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