Revision 791d1262
b/tcg/tcg-op.h | ||
---|---|---|
1715 | 1715 |
|
1716 | 1716 |
static inline void tcg_gen_orc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) |
1717 | 1717 |
{ |
1718 |
#ifdef TCG_TARGET_HAS_orc_i32 |
|
1719 |
tcg_gen_op3_i32(INDEX_op_orc_i32, ret, arg1, arg2); |
|
1720 |
#else |
|
1718 | 1721 |
TCGv_i32 t0; |
1719 | 1722 |
t0 = tcg_temp_new_i32(); |
1720 | 1723 |
tcg_gen_not_i32(t0, arg2); |
1721 | 1724 |
tcg_gen_or_i32(ret, arg1, t0); |
1722 | 1725 |
tcg_temp_free_i32(t0); |
1726 |
#endif |
|
1723 | 1727 |
} |
1724 | 1728 |
|
1725 | 1729 |
static inline void tcg_gen_orc_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2) |
1726 | 1730 |
{ |
1731 |
#ifdef TCG_TARGET_HAS_orc_i64 |
|
1732 |
tcg_gen_op3_i64(INDEX_op_orc_i64, ret, arg1, arg2); |
|
1733 |
#elif defined(TCG_TARGET_HAS_orc_i32) && TCG_TARGET_REG_BITS == 32 |
|
1734 |
tcg_gen_orc_i32(TCGV_LOW(ret), TCGV_LOW(arg1), TCGV_LOW(arg2)); |
|
1735 |
tcg_gen_orc_i32(TCGV_HIGH(ret), TCGV_HIGH(arg1), TCGV_HIGH(arg2)); |
|
1736 |
#else |
|
1727 | 1737 |
TCGv_i64 t0; |
1728 | 1738 |
t0 = tcg_temp_new_i64(); |
1729 | 1739 |
tcg_gen_not_i64(t0, arg2); |
1730 | 1740 |
tcg_gen_or_i64(ret, arg1, t0); |
1731 | 1741 |
tcg_temp_free_i64(t0); |
1742 |
#endif |
|
1732 | 1743 |
} |
1733 | 1744 |
|
1734 | 1745 |
static inline void tcg_gen_rotl_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2) |
b/tcg/tcg-opc.h | ||
---|---|---|
112 | 112 |
#ifdef TCG_TARGET_HAS_andc_i32 |
113 | 113 |
DEF2(andc_i32, 1, 2, 0, 0) |
114 | 114 |
#endif |
115 |
#ifdef TCG_TARGET_HAS_orc_i32 |
|
116 |
DEF2(orc_i32, 1, 2, 0, 0) |
|
117 |
#endif |
|
115 | 118 |
|
116 | 119 |
#if TCG_TARGET_REG_BITS == 64 |
117 | 120 |
DEF2(mov_i64, 1, 1, 0, 0) |
... | ... | |
191 | 194 |
#ifdef TCG_TARGET_HAS_andc_i64 |
192 | 195 |
DEF2(andc_i64, 1, 2, 0, 0) |
193 | 196 |
#endif |
197 |
#ifdef TCG_TARGET_HAS_orc_i64 |
|
198 |
DEF2(orc_i64, 1, 2, 0, 0) |
|
199 |
#endif |
|
194 | 200 |
#endif |
195 | 201 |
|
196 | 202 |
/* QEMU specific */ |
Also available in: Unified diff