| /* T-head extension definition file for RISC-V. |
| Copyright (C) 2025 Free Software Foundation, Inc. |
| |
| This file is part of GCC. |
| |
| GCC is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 3, or (at your option) |
| any later version. |
| |
| GCC is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with GCC; see the file COPYING3. If not see |
| <http://www.gnu.org/licenses/>. |
| |
| Please run `make riscv-regen` in build folder to make sure updated anything. |
| |
| Format of DEFINE_RISCV_EXT, please refer to riscv-ext.def. */ |
| |
| DEFINE_RISCV_EXT( |
| /* NAME */ xtheadba, |
| /* UPPERCAE_NAME */ XTHEADBA, |
| /* FULL_NAME */ "T-head address calculation extension", |
| /* DESC */ "", |
| /* URL */ , |
| /* DEP_EXTS */ ({}), |
| /* SUPPORTED_VERSIONS */ ({{1, 0}}), |
| /* FLAG_GROUP */ xthead, |
| /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED, |
| /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED, |
| /* EXTRA_EXTENSION_FLAGS */ 0) |
| |
| DEFINE_RISCV_EXT( |
| /* NAME */ xtheadbb, |
| /* UPPERCAE_NAME */ XTHEADBB, |
| /* FULL_NAME */ "T-head basic bit-manipulation extension", |
| /* DESC */ "", |
| /* URL */ , |
| /* DEP_EXTS */ ({}), |
| /* SUPPORTED_VERSIONS */ ({{1, 0}}), |
| /* FLAG_GROUP */ xthead, |
| /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED, |
| /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED, |
| /* EXTRA_EXTENSION_FLAGS */ 0) |
| |
| DEFINE_RISCV_EXT( |
| /* NAME */ xtheadbs, |
| /* UPPERCAE_NAME */ XTHEADBS, |
| /* FULL_NAME */ "T-head single-bit instructions extension", |
| /* DESC */ "", |
| /* URL */ , |
| /* DEP_EXTS */ ({}), |
| /* SUPPORTED_VERSIONS */ ({{1, 0}}), |
| /* FLAG_GROUP */ xthead, |
| /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED, |
| /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED, |
| /* EXTRA_EXTENSION_FLAGS */ 0) |
| |
| DEFINE_RISCV_EXT( |
| /* NAME */ xtheadcmo, |
| /* UPPERCAE_NAME */ XTHEADCMO, |
| /* FULL_NAME */ "T-head cache management operations extension", |
| /* DESC */ "", |
| /* URL */ , |
| /* DEP_EXTS */ ({}), |
| /* SUPPORTED_VERSIONS */ ({{1, 0}}), |
| /* FLAG_GROUP */ xthead, |
| /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED, |
| /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED, |
| /* EXTRA_EXTENSION_FLAGS */ 0) |
| |
| DEFINE_RISCV_EXT( |
| /* NAME */ xtheadcondmov, |
| /* UPPERCAE_NAME */ XTHEADCONDMOV, |
| /* FULL_NAME */ "T-head conditional move extension", |
| /* DESC */ "", |
| /* URL */ , |
| /* DEP_EXTS */ ({}), |
| /* SUPPORTED_VERSIONS */ ({{1, 0}}), |
| /* FLAG_GROUP */ xthead, |
| /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED, |
| /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED, |
| /* EXTRA_EXTENSION_FLAGS */ 0) |
| |
| DEFINE_RISCV_EXT( |
| /* NAME */ xtheadfmemidx, |
| /* UPPERCAE_NAME */ XTHEADFMEMIDX, |
| /* FULL_NAME */ "T-head indexed memory operations for floating-point registers extension", |
| /* DESC */ "", |
| /* URL */ , |
| /* DEP_EXTS */ ({}), |
| /* SUPPORTED_VERSIONS */ ({{1, 0}}), |
| /* FLAG_GROUP */ xthead, |
| /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED, |
| /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED, |
| /* EXTRA_EXTENSION_FLAGS */ 0) |
| |
| DEFINE_RISCV_EXT( |
| /* NAME */ xtheadfmv, |
| /* UPPERCAE_NAME */ XTHEADFMV, |
| /* FULL_NAME */ "T-head double floating-point high-bit data transmission extension", |
| /* DESC */ "", |
| /* URL */ , |
| /* DEP_EXTS */ ({}), |
| /* SUPPORTED_VERSIONS */ ({{1, 0}}), |
| /* FLAG_GROUP */ xthead, |
| /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED, |
| /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED, |
| /* EXTRA_EXTENSION_FLAGS */ 0) |
| |
| DEFINE_RISCV_EXT( |
| /* NAME */ xtheadint, |
| /* UPPERCAE_NAME */ XTHEADINT, |
| /* FULL_NAME */ "T-head acceleration interruption extension", |
| /* DESC */ "", |
| /* URL */ , |
| /* DEP_EXTS */ ({}), |
| /* SUPPORTED_VERSIONS */ ({{1, 0}}), |
| /* FLAG_GROUP */ xthead, |
| /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED, |
| /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED, |
| /* EXTRA_EXTENSION_FLAGS */ 0) |
| |
| DEFINE_RISCV_EXT( |
| /* NAME */ xtheadmac, |
| /* UPPERCAE_NAME */ XTHEADMAC, |
| /* FULL_NAME */ "T-head multiply-accumulate extension", |
| /* DESC */ "", |
| /* URL */ , |
| /* DEP_EXTS */ ({}), |
| /* SUPPORTED_VERSIONS */ ({{1, 0}}), |
| /* FLAG_GROUP */ xthead, |
| /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED, |
| /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED, |
| /* EXTRA_EXTENSION_FLAGS */ 0) |
| |
| DEFINE_RISCV_EXT( |
| /* NAME */ xtheadmemidx, |
| /* UPPERCAE_NAME */ XTHEADMEMIDX, |
| /* FULL_NAME */ "T-head indexed memory operation extension", |
| /* DESC */ "", |
| /* URL */ , |
| /* DEP_EXTS */ ({}), |
| /* SUPPORTED_VERSIONS */ ({{1, 0}}), |
| /* FLAG_GROUP */ xthead, |
| /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED, |
| /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED, |
| /* EXTRA_EXTENSION_FLAGS */ 0) |
| |
| DEFINE_RISCV_EXT( |
| /* NAME */ xtheadmempair, |
| /* UPPERCAE_NAME */ XTHEADMEMPAIR, |
| /* FULL_NAME */ "T-head two-GPR memory operation extension", |
| /* DESC */ "", |
| /* URL */ , |
| /* DEP_EXTS */ ({}), |
| /* SUPPORTED_VERSIONS */ ({{1, 0}}), |
| /* FLAG_GROUP */ xthead, |
| /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED, |
| /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED, |
| /* EXTRA_EXTENSION_FLAGS */ 0) |
| |
| DEFINE_RISCV_EXT( |
| /* NAME */ xtheadsync, |
| /* UPPERCAE_NAME */ XTHEADSYNC, |
| /* FULL_NAME */ "T-head multi-core synchronization extension", |
| /* DESC */ "", |
| /* URL */ , |
| /* DEP_EXTS */ ({}), |
| /* SUPPORTED_VERSIONS */ ({{1, 0}}), |
| /* FLAG_GROUP */ xthead, |
| /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED, |
| /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED, |
| /* EXTRA_EXTENSION_FLAGS */ 0) |
| |
| DEFINE_RISCV_EXT( |
| /* NAME */ xtheadvector, |
| /* UPPERCAE_NAME */ XTHEADVECTOR, |
| /* FULL_NAME */ "xtheadvector extension", |
| /* DESC */ "", |
| /* URL */ , |
| /* DEP_EXTS */ ({}), |
| /* SUPPORTED_VERSIONS */ ({{1, 0}}), |
| /* FLAG_GROUP */ xthead, |
| /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED, |
| /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED, |
| /* EXTRA_EXTENSION_FLAGS */ 0) |