mirror of
				https://github.com/qemu/qemu.git
				synced 2025-10-31 12:07:31 +00:00 
			
		
		
		
	 75fe83564a
			
		
	
	
		75fe83564a
		
	
	
	
	
		
			
			This new behaviour is in the ARM pseudocode function AArch64.CheckFPAdvSIMDEnabled, which applies to AArch32 via AArch32.CheckAdvSIMDOrFPEnabled when the EL to which the trap would be delivered is in AArch64 mode. Given that ARMv9 drops support for AArch32 outside EL0, the trap EL detection ought to be trivially true, but the pseudocode still contains a number of conditions, and QEMU has not yet committed to dropping A32 support for EL[12] when v9 features are present. Since the computation of SME_TRAP_NONSTREAMING is necessarily different for the two modes, we might as well preserve bits within TBFLAG_ANY and allocate separate bits within TBFLAG_A32 and TBFLAG_A64 instead. Note that DDI0616A.a has typos for bits [22:21] of LD1RO in the table of instructions illegal in streaming mode. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220708151540.18136-4-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
| gen = [
 | |
|   decodetree.process('sve.decode', extra_args: '--decode=disas_sve'),
 | |
|   decodetree.process('sme.decode', extra_args: '--decode=disas_sme'),
 | |
|   decodetree.process('sme-fa64.decode', extra_args: '--static-decode=disas_sme_fa64'),
 | |
|   decodetree.process('neon-shared.decode', extra_args: '--decode=disas_neon_shared'),
 | |
|   decodetree.process('neon-dp.decode', extra_args: '--decode=disas_neon_dp'),
 | |
|   decodetree.process('neon-ls.decode', extra_args: '--decode=disas_neon_ls'),
 | |
|   decodetree.process('vfp.decode', extra_args: '--decode=disas_vfp'),
 | |
|   decodetree.process('vfp-uncond.decode', extra_args: '--decode=disas_vfp_uncond'),
 | |
|   decodetree.process('m-nocp.decode', extra_args: '--decode=disas_m_nocp'),
 | |
|   decodetree.process('mve.decode', extra_args: '--decode=disas_mve'),
 | |
|   decodetree.process('a32.decode', extra_args: '--static-decode=disas_a32'),
 | |
|   decodetree.process('a32-uncond.decode', extra_args: '--static-decode=disas_a32_uncond'),
 | |
|   decodetree.process('t32.decode', extra_args: '--static-decode=disas_t32'),
 | |
|   decodetree.process('t16.decode', extra_args: ['-w', '16', '--static-decode=disas_t16']),
 | |
| ]
 | |
| 
 | |
| arm_ss = ss.source_set()
 | |
| arm_ss.add(gen)
 | |
| arm_ss.add(files(
 | |
|   'cpu.c',
 | |
|   'crypto_helper.c',
 | |
|   'debug_helper.c',
 | |
|   'gdbstub.c',
 | |
|   'helper.c',
 | |
|   'iwmmxt_helper.c',
 | |
|   'm_helper.c',
 | |
|   'mve_helper.c',
 | |
|   'neon_helper.c',
 | |
|   'op_helper.c',
 | |
|   'tlb_helper.c',
 | |
|   'translate.c',
 | |
|   'translate-m-nocp.c',
 | |
|   'translate-mve.c',
 | |
|   'translate-neon.c',
 | |
|   'translate-vfp.c',
 | |
|   'vec_helper.c',
 | |
|   'vfp_helper.c',
 | |
|   'cpu_tcg.c',
 | |
| ))
 | |
| arm_ss.add(zlib)
 | |
| 
 | |
| arm_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c', 'kvm64.c'), if_false: files('kvm-stub.c'))
 | |
| 
 | |
| arm_ss.add(when: 'TARGET_AARCH64', if_true: files(
 | |
|   'cpu64.c',
 | |
|   'gdbstub64.c',
 | |
|   'helper-a64.c',
 | |
|   'mte_helper.c',
 | |
|   'pauth_helper.c',
 | |
|   'sve_helper.c',
 | |
|   'sme_helper.c',
 | |
|   'translate-a64.c',
 | |
|   'translate-sve.c',
 | |
|   'translate-sme.c',
 | |
| ))
 | |
| 
 | |
| arm_softmmu_ss = ss.source_set()
 | |
| arm_softmmu_ss.add(files(
 | |
|   'arch_dump.c',
 | |
|   'arm-powerctl.c',
 | |
|   'machine.c',
 | |
|   'monitor.c',
 | |
|   'psci.c',
 | |
|   'ptw.c',
 | |
| ))
 | |
| 
 | |
| subdir('hvf')
 | |
| 
 | |
| target_arch += {'arm': arm_ss}
 | |
| target_softmmu_arch += {'arm': arm_softmmu_ss}
 |