v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::base::CPU Class Referencefinal

#include <cpu.h>

Collaboration diagram for v8::base::CPU:

Public Types

enum  { kPPCPower8 , kPPCPower9 , kPPCPower10 }
 
enum class  RV_MMU_MODE { kRiscvSV39 , kRiscvSV48 , kRiscvSV57 }
 

Public Member Functions

 CPU ()
 
const char * vendor () const
 
int stepping () const
 
int model () const
 
int ext_model () const
 
int family () const
 
int ext_family () const
 
int type () const
 
int implementer () const
 
int architecture () const
 
int variant () const
 
int part () const
 
bool has_fpu () const
 
int icache_line_size () const
 
int dcache_line_size () const
 
bool has_cmov () const
 
bool has_sahf () const
 
bool has_mmx () const
 
bool has_sse () const
 
bool has_sse2 () const
 
bool has_sse3 () const
 
bool has_ssse3 () const
 
bool has_sse41 () const
 
bool has_sse42 () const
 
bool has_osxsave () const
 
bool has_avx () const
 
bool has_avx2 () const
 
bool has_avx_vnni () const
 
bool has_avx_vnni_int8 () const
 
bool has_fma3 () const
 
bool has_f16c () const
 
bool has_bmi1 () const
 
bool has_bmi2 () const
 
bool has_lzcnt () const
 
bool has_popcnt () const
 
bool is_atom () const
 
bool has_intel_jcc_erratum () const
 
bool has_cetss () const
 
bool has_non_stop_time_stamp_counter () const
 
bool is_running_in_vm () const
 
bool exposes_num_virtual_address_bits () const
 
int num_virtual_address_bits () const
 
bool has_idiva () const
 
bool has_neon () const
 
bool has_thumb2 () const
 
bool has_vfp () const
 
bool has_vfp3 () const
 
bool has_vfp3_d32 () const
 
bool has_jscvt () const
 
bool has_dot_prod () const
 
bool has_lse () const
 
bool has_mte () const
 
bool has_sha3 () const
 
bool has_pmull1q () const
 
bool has_fp16 () const
 
bool is_fp64_mode () const
 
bool has_msa () const
 
bool has_rvv () const
 
bool has_zba () const
 
bool has_zbb () const
 
bool has_zbs () const
 
RV_MMU_MODE riscv_mmu () const
 

Static Public Attributes

static const int kArm = 0x41
 
static const int kNvidia = 0x4e
 
static const int kQualcomm = 0x51
 
static const int kNvidiaDenver = 0x0
 
static const int kArmCortexA5 = 0xc05
 
static const int kArmCortexA7 = 0xc07
 
static const int kArmCortexA8 = 0xc08
 
static const int kArmCortexA9 = 0xc09
 
static const int kArmCortexA12 = 0xc0c
 
static const int kArmCortexA15 = 0xc0f
 
static const int kNvidiaDenverV10 = 0x002
 
static const int kUnknownCacheLineSize = 0
 
static const int kUnknownNumVirtualAddressBits = 0
 

Private Attributes

char vendor_ [13]
 
int stepping_
 
int model_
 
int ext_model_
 
int family_
 
int ext_family_
 
int type_
 
int implementer_
 
int architecture_
 
int variant_
 
int part_
 
int icache_line_size_
 
int dcache_line_size_
 
int num_virtual_address_bits_
 
bool has_fpu_
 
bool has_cmov_
 
bool has_sahf_
 
bool has_mmx_
 
bool has_sse_
 
bool has_sse2_
 
bool has_sse3_
 
bool has_ssse3_
 
bool has_sse41_
 
bool has_sse42_
 
bool is_atom_
 
bool has_intel_jcc_erratum_
 
bool has_cetss_
 
bool has_osxsave_
 
bool has_avx_
 
bool has_avx2_
 
bool has_avx_vnni_
 
bool has_avx_vnni_int8_
 
bool has_fma3_
 
bool has_f16c_
 
bool has_bmi1_
 
bool has_bmi2_
 
bool has_lzcnt_
 
bool has_popcnt_
 
bool has_idiva_
 
bool has_neon_
 
bool has_thumb2_
 
bool has_vfp_
 
bool has_vfp3_
 
bool has_vfp3_d32_
 
bool has_jscvt_
 
bool has_dot_prod_
 
bool has_lse_
 
bool has_mte_
 
bool has_sha3_
 
bool has_pmull1q_
 
bool has_fp16_
 
bool is_fp64_mode_
 
bool has_non_stop_time_stamp_counter_
 
bool is_running_in_vm_
 
bool has_msa_
 
RV_MMU_MODE riscv_mmu_
 
bool has_rvv_
 
bool has_zba_
 
bool has_zbb_
 
bool has_zbs_
 

Detailed Description

Definition at line 32 of file cpu.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
kPPCPower8 
kPPCPower9 
kPPCPower10 

Definition at line 67 of file cpu.h.

◆ RV_MMU_MODE

enum class v8::base::CPU::RV_MMU_MODE
strong
Enumerator
kRiscvSV39 
kRiscvSV48 
kRiscvSV57 

Definition at line 136 of file cpu.h.

Constructor & Destructor Documentation

◆ CPU()

v8::base::CPU::CPU ( )

Definition at line 401 of file cpu.cc.

Here is the call graph for this function:

Member Function Documentation

◆ architecture()

int v8::base::CPU::architecture ( ) const
inline

Definition at line 50 of file cpu.h.

Here is the caller graph for this function:

◆ dcache_line_size()

int v8::base::CPU::dcache_line_size ( ) const
inline

Definition at line 72 of file cpu.h.

◆ exposes_num_virtual_address_bits()

bool v8::base::CPU::exposes_num_virtual_address_bits ( ) const
inline

Definition at line 103 of file cpu.h.

◆ ext_family()

int v8::base::CPU::ext_family ( ) const
inline

Definition at line 42 of file cpu.h.

◆ ext_model()

int v8::base::CPU::ext_model ( ) const
inline

Definition at line 40 of file cpu.h.

◆ family()

int v8::base::CPU::family ( ) const
inline

Definition at line 41 of file cpu.h.

◆ has_avx()

bool v8::base::CPU::has_avx ( ) const
inline

Definition at line 86 of file cpu.h.

◆ has_avx2()

bool v8::base::CPU::has_avx2 ( ) const
inline

Definition at line 87 of file cpu.h.

◆ has_avx_vnni()

bool v8::base::CPU::has_avx_vnni ( ) const
inline

Definition at line 88 of file cpu.h.

◆ has_avx_vnni_int8()

bool v8::base::CPU::has_avx_vnni_int8 ( ) const
inline

Definition at line 89 of file cpu.h.

◆ has_bmi1()

bool v8::base::CPU::has_bmi1 ( ) const
inline

Definition at line 92 of file cpu.h.

◆ has_bmi2()

bool v8::base::CPU::has_bmi2 ( ) const
inline

Definition at line 93 of file cpu.h.

◆ has_cetss()

bool v8::base::CPU::has_cetss ( ) const
inline

Definition at line 98 of file cpu.h.

◆ has_cmov()

bool v8::base::CPU::has_cmov ( ) const
inline

Definition at line 76 of file cpu.h.

◆ has_dot_prod()

bool v8::base::CPU::has_dot_prod ( ) const
inline

Definition at line 120 of file cpu.h.

◆ has_f16c()

bool v8::base::CPU::has_f16c ( ) const
inline

Definition at line 91 of file cpu.h.

◆ has_fma3()

bool v8::base::CPU::has_fma3 ( ) const
inline

Definition at line 90 of file cpu.h.

◆ has_fp16()

bool v8::base::CPU::has_fp16 ( ) const
inline

Definition at line 125 of file cpu.h.

◆ has_fpu()

bool v8::base::CPU::has_fpu ( ) const
inline

Definition at line 70 of file cpu.h.

◆ has_idiva()

bool v8::base::CPU::has_idiva ( ) const
inline

Definition at line 113 of file cpu.h.

◆ has_intel_jcc_erratum()

bool v8::base::CPU::has_intel_jcc_erratum ( ) const
inline

Definition at line 97 of file cpu.h.

◆ has_jscvt()

bool v8::base::CPU::has_jscvt ( ) const
inline

Definition at line 119 of file cpu.h.

◆ has_lse()

bool v8::base::CPU::has_lse ( ) const
inline

Definition at line 121 of file cpu.h.

◆ has_lzcnt()

bool v8::base::CPU::has_lzcnt ( ) const
inline

Definition at line 94 of file cpu.h.

◆ has_mmx()

bool v8::base::CPU::has_mmx ( ) const
inline

Definition at line 78 of file cpu.h.

◆ has_msa()

bool v8::base::CPU::has_msa ( ) const
inline

Definition at line 129 of file cpu.h.

◆ has_mte()

bool v8::base::CPU::has_mte ( ) const
inline

Definition at line 122 of file cpu.h.

◆ has_neon()

bool v8::base::CPU::has_neon ( ) const
inline

Definition at line 114 of file cpu.h.

◆ has_non_stop_time_stamp_counter()

bool v8::base::CPU::has_non_stop_time_stamp_counter ( ) const
inline

Definition at line 99 of file cpu.h.

◆ has_osxsave()

bool v8::base::CPU::has_osxsave ( ) const
inline

Definition at line 85 of file cpu.h.

◆ has_pmull1q()

bool v8::base::CPU::has_pmull1q ( ) const
inline

Definition at line 124 of file cpu.h.

◆ has_popcnt()

bool v8::base::CPU::has_popcnt ( ) const
inline

Definition at line 95 of file cpu.h.

◆ has_rvv()

bool v8::base::CPU::has_rvv ( ) const
inline

Definition at line 132 of file cpu.h.

◆ has_sahf()

bool v8::base::CPU::has_sahf ( ) const
inline

Definition at line 77 of file cpu.h.

◆ has_sha3()

bool v8::base::CPU::has_sha3 ( ) const
inline

Definition at line 123 of file cpu.h.

◆ has_sse()

bool v8::base::CPU::has_sse ( ) const
inline

Definition at line 79 of file cpu.h.

◆ has_sse2()

bool v8::base::CPU::has_sse2 ( ) const
inline

Definition at line 80 of file cpu.h.

◆ has_sse3()

bool v8::base::CPU::has_sse3 ( ) const
inline

Definition at line 81 of file cpu.h.

◆ has_sse41()

bool v8::base::CPU::has_sse41 ( ) const
inline

Definition at line 83 of file cpu.h.

◆ has_sse42()

bool v8::base::CPU::has_sse42 ( ) const
inline

Definition at line 84 of file cpu.h.

◆ has_ssse3()

bool v8::base::CPU::has_ssse3 ( ) const
inline

Definition at line 82 of file cpu.h.

◆ has_thumb2()

bool v8::base::CPU::has_thumb2 ( ) const
inline

Definition at line 115 of file cpu.h.

◆ has_vfp()

bool v8::base::CPU::has_vfp ( ) const
inline

Definition at line 116 of file cpu.h.

◆ has_vfp3()

bool v8::base::CPU::has_vfp3 ( ) const
inline

Definition at line 117 of file cpu.h.

◆ has_vfp3_d32()

bool v8::base::CPU::has_vfp3_d32 ( ) const
inline

Definition at line 118 of file cpu.h.

◆ has_zba()

bool v8::base::CPU::has_zba ( ) const
inline

Definition at line 133 of file cpu.h.

◆ has_zbb()

bool v8::base::CPU::has_zbb ( ) const
inline

Definition at line 134 of file cpu.h.

◆ has_zbs()

bool v8::base::CPU::has_zbs ( ) const
inline

Definition at line 135 of file cpu.h.

◆ icache_line_size()

int v8::base::CPU::icache_line_size ( ) const
inline

Definition at line 71 of file cpu.h.

◆ implementer()

int v8::base::CPU::implementer ( ) const
inline

Definition at line 46 of file cpu.h.

Here is the caller graph for this function:

◆ is_atom()

bool v8::base::CPU::is_atom ( ) const
inline

Definition at line 96 of file cpu.h.

◆ is_fp64_mode()

bool v8::base::CPU::is_fp64_mode ( ) const
inline

Definition at line 128 of file cpu.h.

◆ is_running_in_vm()

bool v8::base::CPU::is_running_in_vm ( ) const
inline

Definition at line 102 of file cpu.h.

◆ model()

int v8::base::CPU::model ( ) const
inline

Definition at line 39 of file cpu.h.

◆ num_virtual_address_bits()

int v8::base::CPU::num_virtual_address_bits ( ) const
inline

Definition at line 106 of file cpu.h.

◆ part()

int v8::base::CPU::part ( ) const
inline

Definition at line 53 of file cpu.h.

Here is the caller graph for this function:

◆ riscv_mmu()

RV_MMU_MODE v8::base::CPU::riscv_mmu ( ) const
inline

Definition at line 141 of file cpu.h.

◆ stepping()

int v8::base::CPU::stepping ( ) const
inline

Definition at line 38 of file cpu.h.

◆ type()

int v8::base::CPU::type ( ) const
inline

Definition at line 43 of file cpu.h.

◆ variant()

int v8::base::CPU::variant ( ) const
inline

Definition at line 51 of file cpu.h.

Here is the caller graph for this function:

◆ vendor()

const char * v8::base::CPU::vendor ( ) const
inline

Definition at line 37 of file cpu.h.

Member Data Documentation

◆ architecture_

int v8::base::CPU::architecture_
private

Definition at line 155 of file cpu.h.

◆ dcache_line_size_

int v8::base::CPU::dcache_line_size_
private

Definition at line 159 of file cpu.h.

◆ ext_family_

int v8::base::CPU::ext_family_
private

Definition at line 152 of file cpu.h.

◆ ext_model_

int v8::base::CPU::ext_model_
private

Definition at line 150 of file cpu.h.

◆ family_

int v8::base::CPU::family_
private

Definition at line 151 of file cpu.h.

◆ has_avx2_

bool v8::base::CPU::has_avx2_
private

Definition at line 176 of file cpu.h.

◆ has_avx_

bool v8::base::CPU::has_avx_
private

Definition at line 175 of file cpu.h.

◆ has_avx_vnni_

bool v8::base::CPU::has_avx_vnni_
private

Definition at line 177 of file cpu.h.

◆ has_avx_vnni_int8_

bool v8::base::CPU::has_avx_vnni_int8_
private

Definition at line 178 of file cpu.h.

◆ has_bmi1_

bool v8::base::CPU::has_bmi1_
private

Definition at line 181 of file cpu.h.

◆ has_bmi2_

bool v8::base::CPU::has_bmi2_
private

Definition at line 182 of file cpu.h.

◆ has_cetss_

bool v8::base::CPU::has_cetss_
private

Definition at line 173 of file cpu.h.

◆ has_cmov_

bool v8::base::CPU::has_cmov_
private

Definition at line 162 of file cpu.h.

◆ has_dot_prod_

bool v8::base::CPU::has_dot_prod_
private

Definition at line 192 of file cpu.h.

◆ has_f16c_

bool v8::base::CPU::has_f16c_
private

Definition at line 180 of file cpu.h.

◆ has_fma3_

bool v8::base::CPU::has_fma3_
private

Definition at line 179 of file cpu.h.

◆ has_fp16_

bool v8::base::CPU::has_fp16_
private

Definition at line 197 of file cpu.h.

◆ has_fpu_

bool v8::base::CPU::has_fpu_
private

Definition at line 161 of file cpu.h.

◆ has_idiva_

bool v8::base::CPU::has_idiva_
private

Definition at line 185 of file cpu.h.

◆ has_intel_jcc_erratum_

bool v8::base::CPU::has_intel_jcc_erratum_
private

Definition at line 172 of file cpu.h.

◆ has_jscvt_

bool v8::base::CPU::has_jscvt_
private

Definition at line 191 of file cpu.h.

◆ has_lse_

bool v8::base::CPU::has_lse_
private

Definition at line 193 of file cpu.h.

◆ has_lzcnt_

bool v8::base::CPU::has_lzcnt_
private

Definition at line 183 of file cpu.h.

◆ has_mmx_

bool v8::base::CPU::has_mmx_
private

Definition at line 164 of file cpu.h.

◆ has_msa_

bool v8::base::CPU::has_msa_
private

Definition at line 201 of file cpu.h.

◆ has_mte_

bool v8::base::CPU::has_mte_
private

Definition at line 194 of file cpu.h.

◆ has_neon_

bool v8::base::CPU::has_neon_
private

Definition at line 186 of file cpu.h.

◆ has_non_stop_time_stamp_counter_

bool v8::base::CPU::has_non_stop_time_stamp_counter_
private

Definition at line 199 of file cpu.h.

◆ has_osxsave_

bool v8::base::CPU::has_osxsave_
private

Definition at line 174 of file cpu.h.

◆ has_pmull1q_

bool v8::base::CPU::has_pmull1q_
private

Definition at line 196 of file cpu.h.

◆ has_popcnt_

bool v8::base::CPU::has_popcnt_
private

Definition at line 184 of file cpu.h.

◆ has_rvv_

bool v8::base::CPU::has_rvv_
private

Definition at line 203 of file cpu.h.

◆ has_sahf_

bool v8::base::CPU::has_sahf_
private

Definition at line 163 of file cpu.h.

◆ has_sha3_

bool v8::base::CPU::has_sha3_
private

Definition at line 195 of file cpu.h.

◆ has_sse2_

bool v8::base::CPU::has_sse2_
private

Definition at line 166 of file cpu.h.

◆ has_sse3_

bool v8::base::CPU::has_sse3_
private

Definition at line 167 of file cpu.h.

◆ has_sse41_

bool v8::base::CPU::has_sse41_
private

Definition at line 169 of file cpu.h.

◆ has_sse42_

bool v8::base::CPU::has_sse42_
private

Definition at line 170 of file cpu.h.

◆ has_sse_

bool v8::base::CPU::has_sse_
private

Definition at line 165 of file cpu.h.

◆ has_ssse3_

bool v8::base::CPU::has_ssse3_
private

Definition at line 168 of file cpu.h.

◆ has_thumb2_

bool v8::base::CPU::has_thumb2_
private

Definition at line 187 of file cpu.h.

◆ has_vfp3_

bool v8::base::CPU::has_vfp3_
private

Definition at line 189 of file cpu.h.

◆ has_vfp3_d32_

bool v8::base::CPU::has_vfp3_d32_
private

Definition at line 190 of file cpu.h.

◆ has_vfp_

bool v8::base::CPU::has_vfp_
private

Definition at line 188 of file cpu.h.

◆ has_zba_

bool v8::base::CPU::has_zba_
private

Definition at line 204 of file cpu.h.

◆ has_zbb_

bool v8::base::CPU::has_zbb_
private

Definition at line 205 of file cpu.h.

◆ has_zbs_

bool v8::base::CPU::has_zbs_
private

Definition at line 206 of file cpu.h.

◆ icache_line_size_

int v8::base::CPU::icache_line_size_
private

Definition at line 158 of file cpu.h.

◆ implementer_

int v8::base::CPU::implementer_
private

Definition at line 154 of file cpu.h.

◆ is_atom_

bool v8::base::CPU::is_atom_
private

Definition at line 171 of file cpu.h.

◆ is_fp64_mode_

bool v8::base::CPU::is_fp64_mode_
private

Definition at line 198 of file cpu.h.

◆ is_running_in_vm_

bool v8::base::CPU::is_running_in_vm_
private

Definition at line 200 of file cpu.h.

◆ kArm

const int v8::base::CPU::kArm = 0x41
static

Definition at line 47 of file cpu.h.

◆ kArmCortexA12

const int v8::base::CPU::kArmCortexA12 = 0xc0c
static

Definition at line 60 of file cpu.h.

◆ kArmCortexA15

const int v8::base::CPU::kArmCortexA15 = 0xc0f
static

Definition at line 61 of file cpu.h.

◆ kArmCortexA5

const int v8::base::CPU::kArmCortexA5 = 0xc05
static

Definition at line 56 of file cpu.h.

◆ kArmCortexA7

const int v8::base::CPU::kArmCortexA7 = 0xc07
static

Definition at line 57 of file cpu.h.

◆ kArmCortexA8

const int v8::base::CPU::kArmCortexA8 = 0xc08
static

Definition at line 58 of file cpu.h.

◆ kArmCortexA9

const int v8::base::CPU::kArmCortexA9 = 0xc09
static

Definition at line 59 of file cpu.h.

◆ kNvidia

const int v8::base::CPU::kNvidia = 0x4e
static

Definition at line 48 of file cpu.h.

◆ kNvidiaDenver

const int v8::base::CPU::kNvidiaDenver = 0x0
static

Definition at line 52 of file cpu.h.

◆ kNvidiaDenverV10

const int v8::base::CPU::kNvidiaDenverV10 = 0x002
static

Definition at line 64 of file cpu.h.

◆ kQualcomm

const int v8::base::CPU::kQualcomm = 0x51
static

Definition at line 49 of file cpu.h.

◆ kUnknownCacheLineSize

const int v8::base::CPU::kUnknownCacheLineSize = 0
static

Definition at line 73 of file cpu.h.

◆ kUnknownNumVirtualAddressBits

const int v8::base::CPU::kUnknownNumVirtualAddressBits = 0
static

Definition at line 110 of file cpu.h.

◆ model_

int v8::base::CPU::model_
private

Definition at line 149 of file cpu.h.

◆ num_virtual_address_bits_

int v8::base::CPU::num_virtual_address_bits_
private

Definition at line 160 of file cpu.h.

◆ part_

int v8::base::CPU::part_
private

Definition at line 157 of file cpu.h.

◆ riscv_mmu_

RV_MMU_MODE v8::base::CPU::riscv_mmu_
private

Definition at line 202 of file cpu.h.

◆ stepping_

int v8::base::CPU::stepping_
private

Definition at line 148 of file cpu.h.

◆ type_

int v8::base::CPU::type_
private

Definition at line 153 of file cpu.h.

◆ variant_

int v8::base::CPU::variant_
private

Definition at line 156 of file cpu.h.

◆ vendor_

char v8::base::CPU::vendor_[13]
private

Definition at line 147 of file cpu.h.


The documentation for this class was generated from the following files: