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)
 |