linux-user: Identify Addition Hardware Capabilities for PowerPC
Add VSX, DFP and ISA 2.06 to the bits identified in the AT_HWCAP entry of the AUXV. Signed-off-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
		
							parent
							
								
									b2f1355020
								
							
						
					
					
						commit
						0e019746d7
					
				| 
						 | 
					@ -749,6 +749,8 @@ static uint32_t get_elf_hwcap(void)
 | 
				
			||||||
       Altivec/FP/SPE support.  Anything else is just a bonus.  */
 | 
					       Altivec/FP/SPE support.  Anything else is just a bonus.  */
 | 
				
			||||||
#define GET_FEATURE(flag, feature)                                      \
 | 
					#define GET_FEATURE(flag, feature)                                      \
 | 
				
			||||||
    do { if (cpu->env.insns_flags & flag) { features |= feature; } } while (0)
 | 
					    do { if (cpu->env.insns_flags & flag) { features |= feature; } } while (0)
 | 
				
			||||||
 | 
					#define GET_FEATURE2(flag, feature)                                      \
 | 
				
			||||||
 | 
					    do { if (cpu->env.insns_flags2 & flag) { features |= feature; } } while (0)
 | 
				
			||||||
    GET_FEATURE(PPC_64B, QEMU_PPC_FEATURE_64);
 | 
					    GET_FEATURE(PPC_64B, QEMU_PPC_FEATURE_64);
 | 
				
			||||||
    GET_FEATURE(PPC_FLOAT, QEMU_PPC_FEATURE_HAS_FPU);
 | 
					    GET_FEATURE(PPC_FLOAT, QEMU_PPC_FEATURE_HAS_FPU);
 | 
				
			||||||
    GET_FEATURE(PPC_ALTIVEC, QEMU_PPC_FEATURE_HAS_ALTIVEC);
 | 
					    GET_FEATURE(PPC_ALTIVEC, QEMU_PPC_FEATURE_HAS_ALTIVEC);
 | 
				
			||||||
| 
						 | 
					@ -757,7 +759,13 @@ static uint32_t get_elf_hwcap(void)
 | 
				
			||||||
    GET_FEATURE(PPC_SPE_DOUBLE, QEMU_PPC_FEATURE_HAS_EFP_DOUBLE);
 | 
					    GET_FEATURE(PPC_SPE_DOUBLE, QEMU_PPC_FEATURE_HAS_EFP_DOUBLE);
 | 
				
			||||||
    GET_FEATURE(PPC_BOOKE, QEMU_PPC_FEATURE_BOOKE);
 | 
					    GET_FEATURE(PPC_BOOKE, QEMU_PPC_FEATURE_BOOKE);
 | 
				
			||||||
    GET_FEATURE(PPC_405_MAC, QEMU_PPC_FEATURE_HAS_4xxMAC);
 | 
					    GET_FEATURE(PPC_405_MAC, QEMU_PPC_FEATURE_HAS_4xxMAC);
 | 
				
			||||||
 | 
					    GET_FEATURE2(PPC2_DFP, QEMU_PPC_FEATURE_HAS_DFP);
 | 
				
			||||||
 | 
					    GET_FEATURE2(PPC2_VSX, QEMU_PPC_FEATURE_HAS_VSX);
 | 
				
			||||||
 | 
					    GET_FEATURE2((PPC2_PERM_ISA206 | PPC2_DIVE_ISA206 | PPC2_ATOMIC_ISA206 |
 | 
				
			||||||
 | 
					                  PPC2_FP_CVT_ISA206 | PPC2_FP_TST_ISA206),
 | 
				
			||||||
 | 
					                  QEMU_PPC_FEATURE_ARCH_2_06);
 | 
				
			||||||
#undef GET_FEATURE
 | 
					#undef GET_FEATURE
 | 
				
			||||||
 | 
					#undef GET_FEATURE2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return features;
 | 
					    return features;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue