1fd4841c0SRichard Henderson /* SPDX-License-Identifier: MIT */ 2fd4841c0SRichard Henderson /* 3fd4841c0SRichard Henderson * Define target-specific opcode support 4fd4841c0SRichard Henderson * Copyright (c) 2024 Linaro, Ltd. 5fd4841c0SRichard Henderson */ 6fd4841c0SRichard Henderson 7fd4841c0SRichard Henderson #ifndef TCG_HAS_H 8fd4841c0SRichard Henderson #define TCG_HAS_H 9fd4841c0SRichard Henderson 10*f15d00a4SRichard Henderson #include "tcg-target-has.h" 11*f15d00a4SRichard Henderson 12fd4841c0SRichard Henderson #if TCG_TARGET_REG_BITS == 32 13fd4841c0SRichard Henderson /* Turn some undef macros into false macros. */ 14fd4841c0SRichard Henderson #define TCG_TARGET_HAS_extr_i64_i32 0 15fd4841c0SRichard Henderson #endif 16fd4841c0SRichard Henderson 17fd4841c0SRichard Henderson #if !defined(TCG_TARGET_HAS_v64) \ 18fd4841c0SRichard Henderson && !defined(TCG_TARGET_HAS_v128) \ 19fd4841c0SRichard Henderson && !defined(TCG_TARGET_HAS_v256) 20fd4841c0SRichard Henderson #define TCG_TARGET_MAYBE_vec 0 21fd4841c0SRichard Henderson #define TCG_TARGET_HAS_abs_vec 0 22fd4841c0SRichard Henderson #define TCG_TARGET_HAS_neg_vec 0 23fd4841c0SRichard Henderson #define TCG_TARGET_HAS_not_vec 0 24fd4841c0SRichard Henderson #define TCG_TARGET_HAS_andc_vec 0 25fd4841c0SRichard Henderson #define TCG_TARGET_HAS_orc_vec 0 26fd4841c0SRichard Henderson #define TCG_TARGET_HAS_nand_vec 0 27fd4841c0SRichard Henderson #define TCG_TARGET_HAS_nor_vec 0 28fd4841c0SRichard Henderson #define TCG_TARGET_HAS_eqv_vec 0 29fd4841c0SRichard Henderson #define TCG_TARGET_HAS_roti_vec 0 30fd4841c0SRichard Henderson #define TCG_TARGET_HAS_rots_vec 0 31fd4841c0SRichard Henderson #define TCG_TARGET_HAS_rotv_vec 0 32fd4841c0SRichard Henderson #define TCG_TARGET_HAS_shi_vec 0 33fd4841c0SRichard Henderson #define TCG_TARGET_HAS_shs_vec 0 34fd4841c0SRichard Henderson #define TCG_TARGET_HAS_shv_vec 0 35fd4841c0SRichard Henderson #define TCG_TARGET_HAS_mul_vec 0 36fd4841c0SRichard Henderson #define TCG_TARGET_HAS_sat_vec 0 37fd4841c0SRichard Henderson #define TCG_TARGET_HAS_minmax_vec 0 38fd4841c0SRichard Henderson #define TCG_TARGET_HAS_bitsel_vec 0 39fd4841c0SRichard Henderson #define TCG_TARGET_HAS_cmpsel_vec 0 40fd4841c0SRichard Henderson #define TCG_TARGET_HAS_tst_vec 0 41fd4841c0SRichard Henderson #else 42fd4841c0SRichard Henderson #define TCG_TARGET_MAYBE_vec 1 43fd4841c0SRichard Henderson #endif 44fd4841c0SRichard Henderson #ifndef TCG_TARGET_HAS_v64 45fd4841c0SRichard Henderson #define TCG_TARGET_HAS_v64 0 46fd4841c0SRichard Henderson #endif 47fd4841c0SRichard Henderson #ifndef TCG_TARGET_HAS_v128 48fd4841c0SRichard Henderson #define TCG_TARGET_HAS_v128 0 49fd4841c0SRichard Henderson #endif 50fd4841c0SRichard Henderson #ifndef TCG_TARGET_HAS_v256 51fd4841c0SRichard Henderson #define TCG_TARGET_HAS_v256 0 52fd4841c0SRichard Henderson #endif 53fd4841c0SRichard Henderson 54fd4841c0SRichard Henderson #endif 55