1*abc730e1SRichard Henderson /* SPDX-License-Identifier: GPL-2.0-or-later */
2*abc730e1SRichard Henderson /*
3*abc730e1SRichard Henderson  * Define AArch64 target-specific operand constraints.
4*abc730e1SRichard Henderson  * Copyright (c) 2021 Linaro
5*abc730e1SRichard Henderson  */
6*abc730e1SRichard Henderson 
7*abc730e1SRichard Henderson /*
8*abc730e1SRichard Henderson  * Define constraint letters for register sets:
9*abc730e1SRichard Henderson  * REGS(letter, register_mask)
10*abc730e1SRichard Henderson  */
11*abc730e1SRichard Henderson REGS('r', ALL_GENERAL_REGS)
12*abc730e1SRichard Henderson REGS('w', ALL_VECTOR_REGS)
13*abc730e1SRichard Henderson 
14*abc730e1SRichard Henderson /*
15*abc730e1SRichard Henderson  * Define constraint letters for constants:
16*abc730e1SRichard Henderson  * CONST(letter, TCG_CT_CONST_* bit set)
17*abc730e1SRichard Henderson  */
18*abc730e1SRichard Henderson CONST('A', TCG_CT_CONST_AIMM)
19*abc730e1SRichard Henderson CONST('L', TCG_CT_CONST_LIMM)
20*abc730e1SRichard Henderson CONST('M', TCG_CT_CONST_MONE)
21*abc730e1SRichard Henderson CONST('O', TCG_CT_CONST_ORRI)
22*abc730e1SRichard Henderson CONST('N', TCG_CT_CONST_ANDI)
23*abc730e1SRichard Henderson CONST('Z', TCG_CT_CONST_ZERO)
24