Update instance.cfg, GRAALVM-README.md, LICENSE.txt, and 1444 more files
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright (c) 2019, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2019, 2020, Arm Limited. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct {
|
||||
uint8_t fFP;
|
||||
uint8_t fASIMD;
|
||||
uint8_t fEVTSTRM;
|
||||
uint8_t fAES;
|
||||
uint8_t fPMULL;
|
||||
uint8_t fSHA1;
|
||||
uint8_t fSHA2;
|
||||
uint8_t fCRC32;
|
||||
uint8_t fLSE;
|
||||
uint8_t fDCPOP;
|
||||
uint8_t fSHA3;
|
||||
uint8_t fSHA512;
|
||||
uint8_t fSVE;
|
||||
uint8_t fSVE2;
|
||||
uint8_t fSTXR_PREFETCH;
|
||||
uint8_t fA53MAC;
|
||||
uint8_t fDMB_ATOMICS;
|
||||
uint8_t fPACA;
|
||||
uint8_t fSVEBITPERM;
|
||||
uint8_t fFPHP;
|
||||
uint8_t fASIMDHP;
|
||||
} CPUFeatures;
|
||||
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
* Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct {
|
||||
uint8_t fCX8;
|
||||
uint8_t fCMOV;
|
||||
uint8_t fFXSR;
|
||||
uint8_t fHT;
|
||||
uint8_t fMMX;
|
||||
uint8_t fAMD_3DNOW_PREFETCH;
|
||||
uint8_t fSSE;
|
||||
uint8_t fSSE2;
|
||||
uint8_t fSSE3;
|
||||
uint8_t fSSSE3;
|
||||
uint8_t fSSE4A;
|
||||
uint8_t fSSE4_1;
|
||||
uint8_t fSSE4_2;
|
||||
uint8_t fPOPCNT;
|
||||
uint8_t fLZCNT;
|
||||
uint8_t fTSC;
|
||||
uint8_t fTSCINV;
|
||||
uint8_t fTSCINV_BIT;
|
||||
uint8_t fAVX;
|
||||
uint8_t fAVX2;
|
||||
uint8_t fAES;
|
||||
uint8_t fERMS;
|
||||
uint8_t fCLMUL;
|
||||
uint8_t fBMI1;
|
||||
uint8_t fBMI2;
|
||||
uint8_t fRTM;
|
||||
uint8_t fADX;
|
||||
uint8_t fAVX512F;
|
||||
uint8_t fAVX512DQ;
|
||||
uint8_t fAVX512PF;
|
||||
uint8_t fAVX512ER;
|
||||
uint8_t fAVX512CD;
|
||||
uint8_t fAVX512BW;
|
||||
uint8_t fAVX512VL;
|
||||
uint8_t fSHA;
|
||||
uint8_t fFMA;
|
||||
uint8_t fVZEROUPPER;
|
||||
uint8_t fAVX512_VPOPCNTDQ;
|
||||
uint8_t fAVX512_VPCLMULQDQ;
|
||||
uint8_t fAVX512_VAES;
|
||||
uint8_t fAVX512_VNNI;
|
||||
uint8_t fFLUSH;
|
||||
uint8_t fFLUSHOPT;
|
||||
uint8_t fCLWB;
|
||||
uint8_t fAVX512_VBMI2;
|
||||
uint8_t fAVX512_VBMI;
|
||||
uint8_t fHV;
|
||||
uint8_t fSERIALIZE;
|
||||
uint8_t fRDTSCP;
|
||||
uint8_t fRDPID;
|
||||
uint8_t fFSRM;
|
||||
uint8_t fGFNI;
|
||||
uint8_t fAVX512_BITALG;
|
||||
uint8_t fPKU;
|
||||
uint8_t fOSPKE;
|
||||
uint8_t fCET_IBT;
|
||||
uint8_t fCET_SS;
|
||||
uint8_t fF16C;
|
||||
uint8_t fAVX512_IFMA;
|
||||
uint8_t fAVX_IFMA;
|
||||
uint8_t fAPX_F;
|
||||
uint8_t fSHA512;
|
||||
uint8_t fAVX512_FP16;
|
||||
uint8_t fAVX10_1;
|
||||
uint8_t fAVX10_2;
|
||||
} CPUFeatures;
|
||||
@@ -0,0 +1,486 @@
|
||||
/*
|
||||
* Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
#include<stdint.h>
|
||||
|
||||
// These datastructures are directly copied from HotSpot vm_version_x86.hpp
|
||||
|
||||
// cpuid result register layouts. These are all unions of a uint32_t
|
||||
// (in case anyone wants access to the register as a whole) and a bitfield.
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t stepping : 4,
|
||||
model : 4,
|
||||
family : 4,
|
||||
proc_type : 2,
|
||||
: 2,
|
||||
ext_model : 4,
|
||||
ext_family : 8,
|
||||
: 4;
|
||||
} bits;
|
||||
} StdCpuid1Eax ;
|
||||
|
||||
typedef union { // example, unused
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t brand_id : 8,
|
||||
clflush_size : 8,
|
||||
threads_per_cpu : 8,
|
||||
apic_id : 8;
|
||||
} bits;
|
||||
} StdCpuid1Ebx ;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t sse3 : 1,
|
||||
clmul : 1,
|
||||
: 1,
|
||||
monitor : 1,
|
||||
: 1,
|
||||
vmx : 1,
|
||||
: 1,
|
||||
est : 1,
|
||||
: 1,
|
||||
ssse3 : 1,
|
||||
cid : 1,
|
||||
: 1,
|
||||
fma : 1,
|
||||
cmpxchg16: 1,
|
||||
: 4,
|
||||
dca : 1,
|
||||
sse4_1 : 1,
|
||||
sse4_2 : 1,
|
||||
: 2,
|
||||
popcnt : 1,
|
||||
: 1,
|
||||
aes : 1,
|
||||
: 1,
|
||||
osxsave : 1,
|
||||
avx : 1,
|
||||
f16c : 1,
|
||||
: 1,
|
||||
hv : 1;
|
||||
} bits;
|
||||
} StdCpuid1Ecx;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t : 4,
|
||||
tsc : 1,
|
||||
: 3,
|
||||
cmpxchg8 : 1,
|
||||
: 6,
|
||||
cmov : 1,
|
||||
: 3,
|
||||
clflush : 1,
|
||||
: 3,
|
||||
mmx : 1,
|
||||
fxsr : 1,
|
||||
sse : 1,
|
||||
sse2 : 1,
|
||||
: 1,
|
||||
ht : 1,
|
||||
: 3;
|
||||
} bits;
|
||||
} StdCpuid1Edx;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t cache_type : 5,
|
||||
: 21,
|
||||
cores_per_cpu : 6;
|
||||
} bits;
|
||||
} DcpCpuid4Eax;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t L1_line_size : 12,
|
||||
partitions : 10,
|
||||
associativity : 10;
|
||||
} bits;
|
||||
} DcpCpuid4Ebx;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t logical_cpus : 16,
|
||||
: 16;
|
||||
} bits;
|
||||
} TplCpuidBEbx;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t LahfSahf : 1,
|
||||
CmpLegacy : 1,
|
||||
: 3,
|
||||
lzcnt : 1,
|
||||
sse4a : 1,
|
||||
misalignsse : 1,
|
||||
prefetchw : 1,
|
||||
: 23;
|
||||
} bits;
|
||||
} ExtCpuid1Ecx;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t : 22,
|
||||
mmx_amd : 1,
|
||||
mmx : 1,
|
||||
fxsr : 1,
|
||||
fxsr_opt : 1,
|
||||
pdpe1gb : 1,
|
||||
rdtscp : 1,
|
||||
: 1,
|
||||
long_mode : 1,
|
||||
tdnow2 : 1,
|
||||
tdnow : 1;
|
||||
} bits;
|
||||
} ExtCpuid1Edx;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t L1_line_size : 8,
|
||||
L1_tag_lines : 8,
|
||||
L1_assoc : 8,
|
||||
L1_size : 8;
|
||||
} bits;
|
||||
} ExtCpuid5Ex;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t : 8,
|
||||
tsc_invariance : 1,
|
||||
: 23;
|
||||
} bits;
|
||||
} ExtCpuid7Edx;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t cores_per_cpu : 8,
|
||||
: 24;
|
||||
} bits;
|
||||
} ExtCpuid8Ecx;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
} SefCpuid7Eax;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t fsgsbase : 1,
|
||||
: 2,
|
||||
bmi1 : 1,
|
||||
: 1,
|
||||
avx2 : 1,
|
||||
: 2,
|
||||
bmi2 : 1,
|
||||
erms : 1,
|
||||
: 1,
|
||||
rtm : 1,
|
||||
: 4,
|
||||
avx512f : 1,
|
||||
avx512dq : 1,
|
||||
: 1,
|
||||
adx : 1,
|
||||
: 1,
|
||||
avx512ifma : 1,
|
||||
: 1,
|
||||
clflushopt : 1,
|
||||
clwb : 1,
|
||||
: 1,
|
||||
avx512pf : 1,
|
||||
avx512er : 1,
|
||||
avx512cd : 1,
|
||||
sha : 1,
|
||||
avx512bw : 1,
|
||||
avx512vl : 1;
|
||||
} bits;
|
||||
} SefCpuid7Ebx;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t prefetchwt1 : 1,
|
||||
avx512_vbmi : 1,
|
||||
umip : 1,
|
||||
pku : 1,
|
||||
ospke : 1,
|
||||
: 1,
|
||||
avx512_vbmi2 : 1,
|
||||
cet_ss : 1,
|
||||
gfni : 1,
|
||||
vaes : 1,
|
||||
avx512_vpclmulqdq : 1,
|
||||
avx512_vnni : 1,
|
||||
avx512_bitalg : 1,
|
||||
: 1,
|
||||
avx512_vpopcntdq : 1,
|
||||
: 1,
|
||||
: 1,
|
||||
mawau : 5,
|
||||
rdpid : 1,
|
||||
: 9;
|
||||
} bits;
|
||||
} SefCpuid7Ecx;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t : 2,
|
||||
avx512_4vnniw : 1,
|
||||
avx512_4fmaps : 1,
|
||||
fast_short_rep_mov : 1,
|
||||
: 9,
|
||||
serialize : 1,
|
||||
: 5,
|
||||
cet_ibt : 1,
|
||||
: 2,
|
||||
avx512_fp16 : 1,
|
||||
: 8;
|
||||
} bits;
|
||||
} SefCpuid7Edx;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t sha512 : 1,
|
||||
: 22,
|
||||
avx_ifma : 1,
|
||||
: 8;
|
||||
} bits;
|
||||
} SefCpuid7SubLeaf1Eax;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t : 19,
|
||||
avx10 : 1,
|
||||
: 1,
|
||||
apx_f : 1,
|
||||
: 10;
|
||||
} bits;
|
||||
} SefCpuid7SubLeaf1Edx;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t sub_leaves_cnt : 31;
|
||||
} bits;
|
||||
} StdCpuid24MainLeafEax;
|
||||
|
||||
typedef union StdCpuid24MainLeafEbx {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t avx10_converged_isa_version : 8,
|
||||
: 8,
|
||||
: 2,
|
||||
avx10_vlen_512 : 1,
|
||||
: 13;
|
||||
} bits;
|
||||
} StdCpuid24MainLeafEbx;
|
||||
|
||||
typedef union StdCpuidEax29Ecx0 {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t apx_nci_ndd_nf : 1,
|
||||
: 31;
|
||||
} bits;
|
||||
} StdCpuidEax29Ecx0;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t : 8,
|
||||
threads_per_core : 8,
|
||||
: 16;
|
||||
} bits;
|
||||
} ExtCpuid1EEbx;
|
||||
|
||||
typedef union {
|
||||
uint32_t value;
|
||||
struct {
|
||||
uint32_t x87 : 1,
|
||||
sse : 1,
|
||||
ymm : 1,
|
||||
bndregs : 1,
|
||||
bndcsr : 1,
|
||||
opmask : 1,
|
||||
zmm512 : 1,
|
||||
zmm32 : 1,
|
||||
: 11,
|
||||
apx_f : 1,
|
||||
: 12;
|
||||
} bits;
|
||||
} XemXcr0Eax;
|
||||
|
||||
// cpuid information block. All info derived from executing cpuid with
|
||||
// various function numbers is stored here. Intel and AMD info is
|
||||
// merged in this block: accessor methods disentangle it.
|
||||
//
|
||||
// The info block is laid out in subblocks of 4 dwords corresponding to
|
||||
// eax, ebx, ecx and edx, whether or not they contain anything useful.
|
||||
typedef struct {
|
||||
// cpuid function 0
|
||||
uint32_t std_max_function;
|
||||
uint32_t std_vendor_name_0;
|
||||
uint32_t std_vendor_name_1;
|
||||
uint32_t std_vendor_name_2;
|
||||
|
||||
// cpuid function 1
|
||||
StdCpuid1Eax std_cpuid1_eax;
|
||||
StdCpuid1Ebx std_cpuid1_ebx;
|
||||
StdCpuid1Ecx std_cpuid1_ecx;
|
||||
StdCpuid1Edx std_cpuid1_edx;
|
||||
|
||||
// cpuid function 4 (deterministic cache parameters)
|
||||
DcpCpuid4Eax dcp_cpuid4_eax;
|
||||
DcpCpuid4Ebx dcp_cpuid4_ebx;
|
||||
uint32_t dcp_cpuid4_ecx; // unused currently
|
||||
uint32_t dcp_cpuid4_edx; // unused currently
|
||||
|
||||
// cpuid function 7 (structured extended features)
|
||||
// eax = 7, ecx = 0
|
||||
SefCpuid7Eax sef_cpuid7_eax;
|
||||
SefCpuid7Ebx sef_cpuid7_ebx;
|
||||
SefCpuid7Ecx sef_cpuid7_ecx;
|
||||
SefCpuid7Edx sef_cpuid7_edx;
|
||||
// cpuid function 7 (structured extended features enumeration sub-leaf 1)
|
||||
// eax = 7, ecx = 1
|
||||
SefCpuid7SubLeaf1Eax sefsl1_cpuid7_eax;
|
||||
SefCpuid7SubLeaf1Edx sefsl1_cpuid7_edx;
|
||||
|
||||
// cpuid function 24 converged vector ISA main leaf
|
||||
// eax = 24, ecx = 0
|
||||
StdCpuid24MainLeafEax std_cpuid24_eax;
|
||||
StdCpuid24MainLeafEbx std_cpuid24_ebx;
|
||||
|
||||
// cpuid function 0x29 APX Advanced Performance Extensions Leaf
|
||||
// eax = 0x29, ecx = 0
|
||||
StdCpuidEax29Ecx0 std_cpuid29_ebx;
|
||||
|
||||
// cpuid function 0xB (processor topology)
|
||||
// ecx = 0
|
||||
uint32_t tpl_cpuidB0_eax;
|
||||
TplCpuidBEbx tpl_cpuidB0_ebx;
|
||||
uint32_t tpl_cpuidB0_ecx; // unused currently
|
||||
uint32_t tpl_cpuidB0_edx; // unused currently
|
||||
|
||||
// ecx = 1
|
||||
uint32_t tpl_cpuidB1_eax;
|
||||
TplCpuidBEbx tpl_cpuidB1_ebx;
|
||||
uint32_t tpl_cpuidB1_ecx; // unused currently
|
||||
uint32_t tpl_cpuidB1_edx; // unused currently
|
||||
|
||||
// ecx = 2
|
||||
uint32_t tpl_cpuidB2_eax;
|
||||
TplCpuidBEbx tpl_cpuidB2_ebx;
|
||||
uint32_t tpl_cpuidB2_ecx; // unused currently
|
||||
uint32_t tpl_cpuidB2_edx; // unused currently
|
||||
|
||||
// cpuid function 0x80000000 // example, unused
|
||||
uint32_t ext_max_function;
|
||||
uint32_t ext_vendor_name_0;
|
||||
uint32_t ext_vendor_name_1;
|
||||
uint32_t ext_vendor_name_2;
|
||||
|
||||
// cpuid function 0x80000001
|
||||
uint32_t ext_cpuid1_eax; // reserved
|
||||
uint32_t ext_cpuid1_ebx; // reserved
|
||||
ExtCpuid1Ecx ext_cpuid1_ecx;
|
||||
ExtCpuid1Edx ext_cpuid1_edx;
|
||||
|
||||
// cpuid functions 0x80000002 thru 0x80000004: example, unused
|
||||
uint32_t proc_name_0, proc_name_1, proc_name_2, proc_name_3;
|
||||
uint32_t proc_name_4, proc_name_5, proc_name_6, proc_name_7;
|
||||
uint32_t proc_name_8, proc_name_9, proc_name_10,proc_name_11;
|
||||
|
||||
// cpuid function 0x80000005 // AMD L1, Intel reserved
|
||||
uint32_t ext_cpuid5_eax; // unused currently
|
||||
uint32_t ext_cpuid5_ebx; // reserved
|
||||
ExtCpuid5Ex ext_cpuid5_ecx; // L1 data cache info (AMD)
|
||||
ExtCpuid5Ex ext_cpuid5_edx; // L1 instruction cache info (AMD)
|
||||
|
||||
// cpuid function 0x80000007
|
||||
uint32_t ext_cpuid7_eax; // reserved
|
||||
uint32_t ext_cpuid7_ebx; // reserved
|
||||
uint32_t ext_cpuid7_ecx; // reserved
|
||||
ExtCpuid7Edx ext_cpuid7_edx; // tscinv
|
||||
|
||||
// cpuid function 0x80000008
|
||||
uint32_t ext_cpuid8_eax; // unused currently
|
||||
uint32_t ext_cpuid8_ebx; // reserved
|
||||
ExtCpuid8Ecx ext_cpuid8_ecx;
|
||||
uint32_t ext_cpuid8_edx; // reserved
|
||||
|
||||
// cpuid function 0x8000001E // AMD 17h
|
||||
uint32_t ext_cpuid1E_eax;
|
||||
ExtCpuid1EEbx ext_cpuid1E_ebx; // threads per core (AMD17h)
|
||||
uint32_t ext_cpuid1E_ecx;
|
||||
uint32_t ext_cpuid1E_edx; // unused currently
|
||||
|
||||
// extended control register XCR0 (the XFEATURE_ENABLED_MASK register)
|
||||
XemXcr0Eax xem_xcr0_eax;
|
||||
uint32_t xem_xcr0_edx; // reserved
|
||||
|
||||
// Space to save ymm registers after signal handle
|
||||
int ymm_save[8*4]; // Save ymm0, ymm7, ymm8, ymm15
|
||||
|
||||
// Space to save zmm registers after signal handle
|
||||
int zmm_save[16*4]; // Save zmm0, zmm7, zmm8, zmm31
|
||||
} CpuidInfo;
|
||||
|
||||
enum Extended_Family {
|
||||
// AMD
|
||||
CPU_FAMILY_AMD_11H = 0x11,
|
||||
// ZX
|
||||
CPU_FAMILY_ZX_CORE_F6 = 6,
|
||||
CPU_FAMILY_ZX_CORE_F7 = 7,
|
||||
// Intel
|
||||
CPU_FAMILY_INTEL_CORE = 6,
|
||||
CPU_MODEL_NEHALEM = 0x1e,
|
||||
CPU_MODEL_NEHALEM_EP = 0x1a,
|
||||
CPU_MODEL_NEHALEM_EX = 0x2e,
|
||||
CPU_MODEL_WESTMERE = 0x25,
|
||||
CPU_MODEL_WESTMERE_EP = 0x2c,
|
||||
CPU_MODEL_WESTMERE_EX = 0x2f,
|
||||
CPU_MODEL_SANDYBRIDGE = 0x2a,
|
||||
CPU_MODEL_SANDYBRIDGE_EP = 0x2d,
|
||||
CPU_MODEL_IVYBRIDGE_EP = 0x3a,
|
||||
CPU_MODEL_HASWELL_E3 = 0x3c,
|
||||
CPU_MODEL_HASWELL_E7 = 0x3f,
|
||||
CPU_MODEL_BROADWELL = 0x3d,
|
||||
CPU_MODEL_SKYLAKE = 0x55
|
||||
};
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (c) 2022, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct {
|
||||
uint8_t fI;
|
||||
uint8_t fM;
|
||||
uint8_t fA;
|
||||
uint8_t fF;
|
||||
uint8_t fD;
|
||||
uint8_t fC;
|
||||
uint8_t fV;
|
||||
} CPUFeatures;
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (c) 2024, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
const int SVM_LOCALE_INITIALIZATION_USE_DEFAULT = 0;
|
||||
const int SVM_LOCALE_INITIALIZATION_SUCCEEDED = 1;
|
||||
const int SVM_LOCALE_INITIALIZATION_OUT_OF_MEMORY = 2;
|
||||
|
||||
typedef struct {
|
||||
char* format_language;
|
||||
char* format_script;
|
||||
char* format_country;
|
||||
char* format_variant;
|
||||
|
||||
char* display_language;
|
||||
char* display_script;
|
||||
char* display_country;
|
||||
char* display_variant;
|
||||
} svm_locale_props_t;
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user