18ae72b38SRichard Henderson /* SPDX-License-Identifier: MIT */ 28ae72b38SRichard Henderson /* 38ae72b38SRichard Henderson * Define target-specific opcode support 48ae72b38SRichard Henderson * Copyright (c) 2009, 2011 Stefan Weil 58ae72b38SRichard Henderson */ 68ae72b38SRichard Henderson 78ae72b38SRichard Henderson #ifndef TCG_TARGET_HAS_H 88ae72b38SRichard Henderson #define TCG_TARGET_HAS_H 98ae72b38SRichard Henderson 108ae72b38SRichard Henderson #define TCG_TARGET_HAS_bswap16_i32 1 118ae72b38SRichard Henderson #define TCG_TARGET_HAS_bswap32_i32 1 128ae72b38SRichard Henderson #define TCG_TARGET_HAS_div_i32 1 138ae72b38SRichard Henderson #define TCG_TARGET_HAS_rem_i32 1 148ae72b38SRichard Henderson #define TCG_TARGET_HAS_ext8s_i32 1 158ae72b38SRichard Henderson #define TCG_TARGET_HAS_ext16s_i32 1 168ae72b38SRichard Henderson #define TCG_TARGET_HAS_ext8u_i32 1 178ae72b38SRichard Henderson #define TCG_TARGET_HAS_ext16u_i32 1 188ae72b38SRichard Henderson #define TCG_TARGET_HAS_andc_i32 1 198ae72b38SRichard Henderson #define TCG_TARGET_HAS_extract2_i32 0 208ae72b38SRichard Henderson #define TCG_TARGET_HAS_eqv_i32 1 218ae72b38SRichard Henderson #define TCG_TARGET_HAS_nand_i32 1 228ae72b38SRichard Henderson #define TCG_TARGET_HAS_nor_i32 1 238ae72b38SRichard Henderson #define TCG_TARGET_HAS_clz_i32 1 248ae72b38SRichard Henderson #define TCG_TARGET_HAS_ctz_i32 1 258ae72b38SRichard Henderson #define TCG_TARGET_HAS_ctpop_i32 1 268ae72b38SRichard Henderson #define TCG_TARGET_HAS_not_i32 1 278ae72b38SRichard Henderson #define TCG_TARGET_HAS_orc_i32 1 288ae72b38SRichard Henderson #define TCG_TARGET_HAS_rot_i32 1 298ae72b38SRichard Henderson #define TCG_TARGET_HAS_negsetcond_i32 0 308ae72b38SRichard Henderson #define TCG_TARGET_HAS_muls2_i32 1 318ae72b38SRichard Henderson #define TCG_TARGET_HAS_muluh_i32 0 328ae72b38SRichard Henderson #define TCG_TARGET_HAS_mulsh_i32 0 338ae72b38SRichard Henderson #define TCG_TARGET_HAS_qemu_st8_i32 0 348ae72b38SRichard Henderson 358ae72b38SRichard Henderson #if TCG_TARGET_REG_BITS == 64 368ae72b38SRichard Henderson #define TCG_TARGET_HAS_extr_i64_i32 0 378ae72b38SRichard Henderson #define TCG_TARGET_HAS_bswap16_i64 1 388ae72b38SRichard Henderson #define TCG_TARGET_HAS_bswap32_i64 1 398ae72b38SRichard Henderson #define TCG_TARGET_HAS_bswap64_i64 1 408ae72b38SRichard Henderson #define TCG_TARGET_HAS_extract2_i64 0 418ae72b38SRichard Henderson #define TCG_TARGET_HAS_div_i64 1 428ae72b38SRichard Henderson #define TCG_TARGET_HAS_rem_i64 1 438ae72b38SRichard Henderson #define TCG_TARGET_HAS_ext8s_i64 1 448ae72b38SRichard Henderson #define TCG_TARGET_HAS_ext16s_i64 1 458ae72b38SRichard Henderson #define TCG_TARGET_HAS_ext32s_i64 1 468ae72b38SRichard Henderson #define TCG_TARGET_HAS_ext8u_i64 1 478ae72b38SRichard Henderson #define TCG_TARGET_HAS_ext16u_i64 1 488ae72b38SRichard Henderson #define TCG_TARGET_HAS_ext32u_i64 1 498ae72b38SRichard Henderson #define TCG_TARGET_HAS_andc_i64 1 508ae72b38SRichard Henderson #define TCG_TARGET_HAS_eqv_i64 1 518ae72b38SRichard Henderson #define TCG_TARGET_HAS_nand_i64 1 528ae72b38SRichard Henderson #define TCG_TARGET_HAS_nor_i64 1 538ae72b38SRichard Henderson #define TCG_TARGET_HAS_clz_i64 1 548ae72b38SRichard Henderson #define TCG_TARGET_HAS_ctz_i64 1 558ae72b38SRichard Henderson #define TCG_TARGET_HAS_ctpop_i64 1 568ae72b38SRichard Henderson #define TCG_TARGET_HAS_not_i64 1 578ae72b38SRichard Henderson #define TCG_TARGET_HAS_orc_i64 1 588ae72b38SRichard Henderson #define TCG_TARGET_HAS_rot_i64 1 598ae72b38SRichard Henderson #define TCG_TARGET_HAS_negsetcond_i64 0 608ae72b38SRichard Henderson #define TCG_TARGET_HAS_muls2_i64 1 618ae72b38SRichard Henderson #define TCG_TARGET_HAS_add2_i32 1 628ae72b38SRichard Henderson #define TCG_TARGET_HAS_sub2_i32 1 638ae72b38SRichard Henderson #define TCG_TARGET_HAS_mulu2_i32 1 648ae72b38SRichard Henderson #define TCG_TARGET_HAS_add2_i64 1 658ae72b38SRichard Henderson #define TCG_TARGET_HAS_sub2_i64 1 668ae72b38SRichard Henderson #define TCG_TARGET_HAS_mulu2_i64 1 678ae72b38SRichard Henderson #define TCG_TARGET_HAS_muluh_i64 0 688ae72b38SRichard Henderson #define TCG_TARGET_HAS_mulsh_i64 0 698ae72b38SRichard Henderson #else 708ae72b38SRichard Henderson #define TCG_TARGET_HAS_mulu2_i32 1 718ae72b38SRichard Henderson #endif /* TCG_TARGET_REG_BITS == 64 */ 728ae72b38SRichard Henderson 738ae72b38SRichard Henderson #define TCG_TARGET_HAS_qemu_ldst_i128 0 748ae72b38SRichard Henderson 758ae72b38SRichard Henderson #define TCG_TARGET_HAS_tst 1 768ae72b38SRichard Henderson 77d9336b72SRichard Henderson #define TCG_TARGET_extract_valid(type, ofs, len) 1 78d9336b72SRichard Henderson #define TCG_TARGET_sextract_valid(type, ofs, len) 1 79*6482e9d2SRichard Henderson #define TCG_TARGET_deposit_valid(type, ofs, len) 1 80d9336b72SRichard Henderson 818ae72b38SRichard Henderson #endif 82