chromium/third_party/cpuinfo/src/src/x86/isa.c

#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>

#include <cpuinfo.h>
#include <x86/cpuid.h>

#if CPUINFO_ARCH_X86
#ifdef _MSC_VER
#pragma pack(push, 2)
#endif
struct fxsave_region {
	uint16_t fpu_control_word;
	uint16_t fpu_status_word;
	uint16_t fpu_tag_word;
	uint16_t fpu_opcode;
	uint32_t fpu_instruction_pointer_offset;
	uint32_t fpu_instruction_pointer_selector;
	uint32_t fpu_operand_pointer_offset;
	uint32_t fpu_operand_pointer_selector;
	uint32_t mxcsr_state;
	uint32_t mxcsr_mask;
	uint64_t fpu_registers[8 * 2];
	uint64_t xmm_registers[8 * 2];
	uint64_t padding[28];
}
#ifndef _MSC_VER
__attribute__((__aligned__(16), __packed__))
#endif
; /* end of fxsave_region structure */
#ifdef _MSC_VER
#pragma pack(pop, 2)
#endif
#endif

struct cpuinfo_x86_isa cpuinfo_x86_detect_isa(
	const struct cpuid_regs basic_info,
	const struct cpuid_regs extended_info,
	uint32_t max_base_index,
	uint32_t max_extended_index,
	enum cpuinfo_vendor vendor,
	enum cpuinfo_uarch uarch) {}