Revision 32d98fbd
b/tcg/arm/tcg-target.h | ||
---|---|---|
69 | 69 |
// #define TCG_TARGET_HAS_orc_i32 |
70 | 70 |
// #define TCG_TARGET_HAS_eqv_i32 |
71 | 71 |
// #define TCG_TARGET_HAS_nand_i32 |
72 |
// #define TCG_TARGET_HAS_nor_i32 |
|
72 | 73 |
|
73 | 74 |
#define TCG_TARGET_HAS_GUEST_BASE |
74 | 75 |
|
b/tcg/i386/tcg-target.h | ||
---|---|---|
59 | 59 |
// #define TCG_TARGET_HAS_orc_i32 |
60 | 60 |
// #define TCG_TARGET_HAS_eqv_i32 |
61 | 61 |
// #define TCG_TARGET_HAS_nand_i32 |
62 |
// #define TCG_TARGET_HAS_nor_i32 |
|
62 | 63 |
|
63 | 64 |
#define TCG_TARGET_HAS_GUEST_BASE |
64 | 65 |
|
b/tcg/mips/tcg-target.h | ||
---|---|---|
89 | 89 |
#undef TCG_TARGET_HAS_orc_i32 |
90 | 90 |
#undef TCG_TARGET_HAS_eqv_i32 |
91 | 91 |
#undef TCG_TARGET_HAS_nand_i32 |
92 |
#undef TCG_TARGET_HAS_nor_i32 |
|
92 | 93 |
|
93 | 94 |
/* optional instructions automatically implemented */ |
94 | 95 |
#undef TCG_TARGET_HAS_neg_i32 /* sub rd, zero, rt */ |
b/tcg/ppc/tcg-target.h | ||
---|---|---|
91 | 91 |
#define TCG_TARGET_HAS_orc_i32 |
92 | 92 |
/* #define TCG_TARGET_HAS_eqv_i32 */ |
93 | 93 |
/* #define TCG_TARGET_HAS_nand_i32 */ |
94 |
/* #define TCG_TARGET_HAS_nor_i32 */ |
|
94 | 95 |
|
95 | 96 |
#define TCG_AREG0 TCG_REG_R27 |
96 | 97 |
|
b/tcg/ppc64/tcg-target.h | ||
---|---|---|
82 | 82 |
/* #define TCG_TARGET_HAS_orc_i32 */ |
83 | 83 |
/* #define TCG_TARGET_HAS_eqv_i32 */ |
84 | 84 |
/* #define TCG_TARGET_HAS_nand_i32 */ |
85 |
/* #define TCG_TARGET_HAS_nor_i32 */ |
|
85 | 86 |
|
86 | 87 |
#define TCG_TARGET_HAS_div_i64 |
87 | 88 |
/* #define TCG_TARGET_HAS_rot_i64 */ |
... | ... | |
100 | 101 |
/* #define TCG_TARGET_HAS_orc_i64 */ |
101 | 102 |
/* #define TCG_TARGET_HAS_eqv_i64 */ |
102 | 103 |
/* #define TCG_TARGET_HAS_nand_i64 */ |
104 |
/* #define TCG_TARGET_HAS_nor_i64 */ |
|
103 | 105 |
|
104 | 106 |
#define TCG_AREG0 TCG_REG_R27 |
105 | 107 |
|
b/tcg/s390/tcg-target.h | ||
---|---|---|
61 | 61 |
// #define TCG_TARGET_HAS_orc_i32 |
62 | 62 |
// #define TCG_TARGET_HAS_eqv_i32 |
63 | 63 |
// #define TCG_TARGET_HAS_nand_i32 |
64 |
// #define TCG_TARGET_HAS_nor_i32 |
|
64 | 65 |
|
65 | 66 |
// #define TCG_TARGET_HAS_div_i64 |
66 | 67 |
// #define TCG_TARGET_HAS_rot_i64 |
... | ... | |
79 | 80 |
// #define TCG_TARGET_HAS_orc_i64 |
80 | 81 |
// #define TCG_TARGET_HAS_eqv_i64 |
81 | 82 |
// #define TCG_TARGET_HAS_nand_i64 |
83 |
// #define TCG_TARGET_HAS_nor_i64 |
|
82 | 84 |
|
83 | 85 |
/* used for function call generation */ |
84 | 86 |
#define TCG_REG_CALL_STACK TCG_REG_R15 |
b/tcg/sparc/tcg-target.h | ||
---|---|---|
102 | 102 |
#define TCG_TARGET_HAS_orc_i32 |
103 | 103 |
// #define TCG_TARGET_HAS_eqv_i32 |
104 | 104 |
// #define TCG_TARGET_HAS_nand_i32 |
105 |
// #define TCG_TARGET_HAS_nor_i32 |
|
105 | 106 |
|
106 | 107 |
#if TCG_TARGET_REG_BITS == 64 |
107 | 108 |
#define TCG_TARGET_HAS_div_i64 |
... | ... | |
121 | 122 |
#define TCG_TARGET_HAS_orc_i64 |
122 | 123 |
// #define TCG_TARGET_HAS_eqv_i64 |
123 | 124 |
// #define TCG_TARGET_HAS_nand_i64 |
125 |
// #define TCG_TARGET_HAS_nor_i64 |
|
124 | 126 |
#endif |
125 | 127 |
|
126 | 128 |
/* Note: must be synced with dyngen-exec.h */ |
b/tcg/tcg-op.h | ||
---|---|---|
1786 | 1786 |
|
1787 | 1787 |
static inline void tcg_gen_nor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) |
1788 | 1788 |
{ |
1789 |
#ifdef TCG_TARGET_HAS_nor_i32 |
|
1790 |
tcg_gen_op3_i32(INDEX_op_nor_i32, ret, arg1, arg2); |
|
1791 |
#else |
|
1789 | 1792 |
tcg_gen_or_i32(ret, arg1, arg2); |
1790 | 1793 |
tcg_gen_not_i32(ret, ret); |
1794 |
#endif |
|
1791 | 1795 |
} |
1792 | 1796 |
|
1793 | 1797 |
static inline void tcg_gen_nor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) |
1794 | 1798 |
{ |
1799 |
#ifdef TCG_TARGET_HAS_nor_i64 |
|
1800 |
tcg_gen_op3_i64(INDEX_op_nor_i64, ret, arg1, arg2); |
|
1801 |
#elif defined(TCG_TARGET_HAS_nor_i32) && TCG_TARGET_REG_BITS == 32 |
|
1802 |
tcg_gen_nor_i32(TCGV_LOW(ret), TCGV_LOW(arg1), TCGV_LOW(arg2)); |
|
1803 |
tcg_gen_nor_i32(TCGV_HIGH(ret), TCGV_HIGH(arg1), TCGV_HIGH(arg2)); |
|
1804 |
#else |
|
1795 | 1805 |
tcg_gen_or_i64(ret, arg1, arg2); |
1796 | 1806 |
tcg_gen_not_i64(ret, ret); |
1807 |
#endif |
|
1797 | 1808 |
} |
1798 | 1809 |
|
1799 | 1810 |
static inline void tcg_gen_orc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) |
b/tcg/tcg-opc.h | ||
---|---|---|
122 | 122 |
#ifdef TCG_TARGET_HAS_nand_i32 |
123 | 123 |
DEF2(nand_i32, 1, 2, 0, 0) |
124 | 124 |
#endif |
125 |
#ifdef TCG_TARGET_HAS_nor_i32 |
|
126 |
DEF2(nor_i32, 1, 2, 0, 0) |
|
127 |
#endif |
|
125 | 128 |
|
126 | 129 |
#if TCG_TARGET_REG_BITS == 64 |
127 | 130 |
DEF2(mov_i64, 1, 1, 0, 0) |
... | ... | |
211 | 214 |
#ifdef TCG_TARGET_HAS_nand_i64 |
212 | 215 |
DEF2(nand_i64, 1, 2, 0, 0) |
213 | 216 |
#endif |
217 |
#ifdef TCG_TARGET_HAS_nor_i64 |
|
218 |
DEF2(nor_i64, 1, 2, 0, 0) |
|
219 |
#endif |
|
214 | 220 |
#endif |
215 | 221 |
|
216 | 222 |
/* QEMU specific */ |
b/tcg/x86_64/tcg-target.h | ||
---|---|---|
88 | 88 |
// #define TCG_TARGET_HAS_eqv_i64 |
89 | 89 |
// #define TCG_TARGET_HAS_nand_i32 |
90 | 90 |
// #define TCG_TARGET_HAS_nand_i64 |
91 |
// #define TCG_TARGET_HAS_nor_i32 |
|
92 |
// #define TCG_TARGET_HAS_nor_i64 |
|
91 | 93 |
|
92 | 94 |
#define TCG_TARGET_HAS_GUEST_BASE |
93 | 95 |
|
Also available in: Unified diff