7212812263
Always reserve r3 for tlb softmmu lookup. Fix a bug in user-only ALL_QLDST_REGS, in that r14 is clobbered by the BLNE that leads to the misaligned trap. Remove r0+r1 from user-only ALL_QLDST_REGS; I believe these had been reserved for bswap, which we no longer perform during qemu_st. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
27 lines
667 B
C
27 lines
667 B
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Define Arm target-specific operand constraints.
|
|
* Copyright (c) 2021 Linaro
|
|
*/
|
|
|
|
/*
|
|
* Define constraint letters for register sets:
|
|
* REGS(letter, register_mask)
|
|
*/
|
|
REGS('e', ALL_GENERAL_REGS & 0x5555) /* even regs */
|
|
REGS('r', ALL_GENERAL_REGS)
|
|
REGS('q', ALL_QLDST_REGS)
|
|
REGS('Q', ALL_QLDST_REGS & 0x5555) /* even qldst */
|
|
REGS('w', ALL_VECTOR_REGS)
|
|
|
|
/*
|
|
* Define constraint letters for constants:
|
|
* CONST(letter, TCG_CT_CONST_* bit set)
|
|
*/
|
|
CONST('I', TCG_CT_CONST_ARM)
|
|
CONST('K', TCG_CT_CONST_INV)
|
|
CONST('N', TCG_CT_CONST_NEG)
|
|
CONST('O', TCG_CT_CONST_ORRI)
|
|
CONST('V', TCG_CT_CONST_ANDI)
|
|
CONST('Z', TCG_CT_CONST_ZERO)
|