xref: /qemu/tcg/arm/tcg-target-con-str.h (revision 6972ef1440a9d685482d78672620a7482f2bd09a)
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  */
111b18d1faSRichard Henderson REGS('e', ALL_GENERAL_REGS & 0x5555) /* even regs */
123440d583SRichard Henderson REGS('r', ALL_GENERAL_REGS)
13*72128122SRichard Henderson REGS('q', ALL_QLDST_REGS)
14*72128122SRichard Henderson REGS('Q', ALL_QLDST_REGS & 0x5555)   /* even qldst */
15000cf477SRichard Henderson REGS('w', ALL_VECTOR_REGS)
163440d583SRichard Henderson 
173440d583SRichard Henderson /*
183440d583SRichard Henderson  * Define constraint letters for constants:
193440d583SRichard Henderson  * CONST(letter, TCG_CT_CONST_* bit set)
203440d583SRichard Henderson  */
213440d583SRichard Henderson CONST('I', TCG_CT_CONST_ARM)
223440d583SRichard Henderson CONST('K', TCG_CT_CONST_INV)
233440d583SRichard Henderson CONST('N', TCG_CT_CONST_NEG)
24d74b86edSRichard Henderson CONST('O', TCG_CT_CONST_ORRI)
25d74b86edSRichard Henderson CONST('V', TCG_CT_CONST_ANDI)
263440d583SRichard Henderson CONST('Z', TCG_CT_CONST_ZERO)
27