1 /* Copyright (C
) 2023-2025 Free Software Foundation
, Inc.
3 This file is part of GCC.
5 GCC is free software
; you can redistribute it and
/or modify it
6 under the terms of the GNU General Public License as published
7 by the Free Software Foundation
; either version
3, or (at your
8 option
) any later version.
10 GCC is distributed in the hope that it will be useful
, but WITHOUT
11 ANY WARRANTY
; without even the implied warranty of MERCHANTABILITY
12 or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public
13 License for more details.
15 You should have received a copy of the GNU General Public License
16 along with GCC
; see the file COPYING3. If not see
17 <http
://www.gnu.org
/licenses
/>.
*/
19 /* This file defines a set of
"ISA modes"; in other words
, it defines
20 various bits of runtime state that control the set of available
21 instructions or that affect the semantics of instructions in some way.
23 Before using #include to read this file
, define a macro
:
25 DEF_AARCH64_ISA_MODE(NAME
)
27 where NAME is the name of the mode.
*/
29 /* Indicates that PSTATE.SM is known to be
1 or
0 respectively. These
30 modes are mutually exclusive. If neither mode is active then the state
31 of PSTATE.SM is not known at compile time.
*/
32 DEF_AARCH64_ISA_MODE(SM_ON
)
33 DEF_AARCH64_ISA_MODE(SM_OFF
)
35 /* Indicates that PSTATE.ZA is known to be
1. The converse is that
36 PSTATE.ZA might be
0 or
1, depending on whether there is an uncommitted
38 DEF_AARCH64_ISA_MODE(ZA_ON
)
40 #undef DEF_AARCH64_ISA_MODE