xref: /qemu/tcg/arm/tcg-target-con-str.h (revision 1b18d1fa05bbf8d28778b0eb65dc21d4cd7c6950)
13440d583SRichard Henderson /* SPDX-License-Identifier: MIT */
23440d583SRichard Henderson /*
33440d583SRichard Henderson  * Define Arm target-specific operand constraints.
43440d583SRichard Henderson  * Copyright (c) 2021 Linaro
53440d583SRichard Henderson  */
63440d583SRichard Henderson 
73440d583SRichard Henderson /*
83440d583SRichard Henderson  * Define constraint letters for register sets:
93440d583SRichard Henderson  * REGS(letter, register_mask)
103440d583SRichard Henderson  */
11*1b18d1faSRichard Henderson REGS('e', ALL_GENERAL_REGS & 0x5555) /* even regs */
123440d583SRichard Henderson REGS('r', ALL_GENERAL_REGS)
133440d583SRichard Henderson REGS('l', ALL_QLOAD_REGS)
143440d583SRichard Henderson REGS('s', ALL_QSTORE_REGS)
15*1b18d1faSRichard Henderson REGS('S', ALL_QSTORE_REGS & 0x5555)  /* even qstore */
16000cf477SRichard Henderson REGS('w', ALL_VECTOR_REGS)
173440d583SRichard Henderson 
183440d583SRichard Henderson /*
193440d583SRichard Henderson  * Define constraint letters for constants:
203440d583SRichard Henderson  * CONST(letter, TCG_CT_CONST_* bit set)
213440d583SRichard Henderson  */
223440d583SRichard Henderson CONST('I', TCG_CT_CONST_ARM)
233440d583SRichard Henderson CONST('K', TCG_CT_CONST_INV)
243440d583SRichard Henderson CONST('N', TCG_CT_CONST_NEG)
25d74b86edSRichard Henderson CONST('O', TCG_CT_CONST_ORRI)
26d74b86edSRichard Henderson CONST('V', TCG_CT_CONST_ANDI)
273440d583SRichard Henderson CONST('Z', TCG_CT_CONST_ZERO)
28