x86_reset_signal_conv 5 Interfaces
Quick-Start Platform x86 Reference Manual  /  4 Classes  / 

x86QSP1

Description
The x86QSP1 class implements an x86 processor.
Interfaces Implemented
a20, callback_info, class_disassembly, concurrency_group, concurrency_mode, conf_object, context_handler, cpu_cached_instruction, cpu_cached_instruction_once, cpu_cached_stream, cpu_exception_query, cpu_instruction_decoder, cpu_instruction_query, cpu_instrumentation_stream, cpu_instrumentation_subscribe, cpu_memory_query, cycle, decoder, describe_registers, direct_memory_update, event_delta, exception, exec_trace, execute, execute_control, freerun, frequency, frequency_listener, icode, instruction_fetch, instrumentation_order, int_register, internal_cached_instruction, interrupt_ack, jit_control, log_object, opcode_info, pre_decoder, processor_cli, processor_gui, processor_info, processor_info_v2, processor_internal, register_breakpoint, save_state, simulator_cache, smm_instrumentation_subscribe, stall, stc, step, step_cycle_ratio, step_event_instrumentation, step_info, telemetry, virtual_data_breakpoint, virtual_instruction_breakpoint, vmp, vmp_internal, vmx_instrumentation_subscribe, x86, x86_access_type, x86_address_query, x86_cpuid_query, x86_cstate, x86_exception, x86_exception_query, x86_instruction_query, x86_instrumentation_subscribe, x86_instrumentation_subscribe_v2, x86_memory_access, x86_memory_operation, x86_memory_query, x86_msr, x86_reg_access, x86_smm_state, x86_vmp_control
Port Objects
vtime.cycles <cycle-counter> : cycle queue
vtime.ps <ps-clock> : event queue (ps)
vtime <vtime> : event handler
Port Interfaces
IGNNE (signal) : IGNNE signal
INIT (signal) : INIT signal
NMI (signal) : NMI signal
RESET (signal) : RESET signal
SMI (signal) : SMI signal
cpu_frequency (simple_dispatcher) : Broadcasts changes in CPU frequency.
cpu_internal_counters (probe_index) : Port for internal counters
cpu_internal_intensity_counters (probe_index) : Port for internal intensity counters
extension (decoder) : Instruction set extension decoder
step_event_probes (probe_index, probe_subscribe) : Port for event probes.
virtual (context_handler) : Handler for virtual address context, as opposed to the non-port context_handler which deals with linear addresses.
Notifiers
freerunning-mode-change, frequency-change
Provided By
x86-intel64

Attributes

a20_inhibited

Optional attribute; read/write access; type: boolean. A20 will be always lowered if this flag is set.

a20mask

Optional attribute; read/write access; type: integer. The a20mask.

access_type_name

Pseudo attribute; read-only access; integer indexed; indexed type: string. Get string describing the specified access type (x86_access_type_t).

activity_state

Optional attribute; read/write access; type: integer. Processor activity state.

allow_tss_bios_workaround

Optional attribute; read/write access; type: boolean. If this attribute is set to TRUE, which is the default, then VMP is allowed to modify the initial CPU state slightly in order to work around a BIOS problem causing hard host crashes. The workaround consist of using a 32-bit TSS instead of a 16-bit TSS after CPU reset. If this attribute is set to FALSE, then VMP will be disabled whenever a 16-bit TSS is loaded.

apic

Required attribute; read/write access; type: object. Local APIC this cpu is connected to.

aprof_views

Pseudo attribute; read/write access; type: [[o,i]*]. ((address profiler, view)*) Address profiler views selected for this processor. Affects only the display of profiling information, and has nothing to do with collecting it.

This attribute should contain a list of lists: one list for each address profiler view you want to select (in the order they are to appear), each containing first the address profiler object, then the index of the desired view.

auto_hyper_enabled

Pseudo attribute; read/write access; type: boolean. Enables automatic detection of loops which can be hypersimulated.

auto_hyper_loops

Pseudo attribute; read-only access; type: [[iis]*]. {ffwd_steps, addr, precond} Information on automatically found hypersim loops.

block_init

Optional attribute; read/write access; type: integer. INIT will be blocked if this flag is set.

block_nmi

Optional attribute; read/write access; type: integer. NMI will be blocked if this flag is set.

block_smi

Optional attribute; read/write access; type: integer. SMI will be blocked if this flag is set.

block_virtual_nmi

Optional attribute; read/write access; type: boolean. Virtual NMIs blocking.

break_on_triple_fault

Optional attribute; read/write access; type: boolean. If TRUE, the model will stop execution if there is a triple fault. Set to FALSE to not stop on triple fault.

cache_flush_handler

Optional attribute; read/write access; type: object or nil. Object implementing the x86_cache_flush interface.

cell

Optional attribute; read/write access; type: object or nil. Cell

cpl

Pseudo attribute; read/write access; type: integer. Current privilege level.

cpuid_2_eax

Optional attribute; read/write access; type: integer. Value returned in EAX for CPUID when input EAX == 2.

cpuid_2_ebx

Optional attribute; read/write access; type: integer. Value returned in EBX for CPUID when input EAX == 2.

cpuid_2_ecx

Optional attribute; read/write access; type: integer. Value returned in ECX for CPUID when input EAX == 2.

cpuid_2_edx

Optional attribute; read/write access; type: integer. Value returned in EDX for CPUID when input EAX == 2.

cpuid_brand_id

Optional attribute; read/write access; type: integer. Brand ID for CPUID.

cpuid_clflush_size

Optional attribute; read/write access; type: integer. Size of CLFLUSH as reported by CPUID.

cpuid_core_level_apic_id_shift_count

Optional attribute; read/write access; type: integer. Number of bits for APIC ID shift at the core level in CPUID. The shift count at the thread level will be added to calculate the second 0xB sub-leaf shift count. If left at the default value of 0, a count just large enough to represent the cores in the package.

cpuid_extended_family

Optional attribute; read/write access; type: integer. Extended family for CPUID.

cpuid_extended_model

Optional attribute; read/write access; type: integer. Extended model for CPUID.

cpuid_family

Optional attribute; read/write access; type: integer. Family for CPUID.

cpuid_l2_cache_assoc

Optional attribute; read/write access; type: integer. Level 2 cache information returned by CPUID function 8000.0006.

cpuid_l2_cache_line_size

Optional attribute; read/write access; type: integer. Level 2 cache information returned by CPUID function 8000.0006.

cpuid_l2_cache_lines_per_tag

Optional attribute; read/write access; type: integer. Level 2 cache information returned by CPUID function 8000.0006.

cpuid_l2_cache_size_kb

Optional attribute; read/write access; type: integer. Level 2 cache information returned by CPUID function 8000.0006.

cpuid_lahf64

Pseudo attribute; read-only access; type: boolean. LAHF/SAHF support in 64-bit mode. Reported through CPUID function 80000001 in ECX bit 0.

cpuid_list

Optional attribute; read/write access; type: [o*]. List of objects implementing the x86_cpuid interface. These objects are called in the order of registration after the magic instruction handler but before internal CPUID implementation

cpuid_logical_processor_count

Optional attribute; read/write access; type: integer. Count of logical processors for CPUID. Setting this to non-zero will enable the HTT feature bit (bit 28).

cpuid_model

Optional attribute; read/write access; type: integer. Model for CPUID.

cpuid_monitor

Pseudo attribute; read-only access; type: integer. Support for MONITOR. Reported through CPUID function 1 ECX bit 3.

cpuid_monitor_max_size

Optional attribute; read/write access; type: integer. Largest monitor granularity. This is reported through CPUID, but not used in the implementation.

cpuid_monitor_min_size

Optional attribute; read/write access; type: integer. Smallest monitor granularity. This is the size used in the monitor implementation.

cpuid_mwait_int_break_support

Optional attribute; read/write access; type: boolean. Support for MWAIT break on interrupts even if disabled.

cpuid_physical_apic_id

Optional attribute; read/write access; type: integer. Physical local APIC ID for CPUID.

cpuid_processor_name

Optional attribute; read/write access; type: string. Processor name for CPUID.

cpuid_sse3

Pseudo attribute; read-only access; type: integer. Support for SSE3. Reported through CPUID function 1 ECX bit 0.

cpuid_sse4_1

Pseudo attribute; read-only access; type: integer. Support for SSE4.1. Reported through CPUID function 1 ECX bit 19.

cpuid_sse4_2

Pseudo attribute; read-only access; type: integer. Support for SSE4.2. Reported through CPUID function 1 ECX bit 20.

cpuid_ssse3

Pseudo attribute; read-only access; type: integer. Support for SSSE3. Reported through CPUID function 1 ECX bit 9.

cpuid_stepping

Optional attribute; read/write access; type: integer. Stepping for CPUID.

cpuid_thread_level_apic_id_shift_count

Optional attribute; read/write access; type: integer. Number of bits for APIC ID shift at the thread level in CPUID. If left at the default value of 0, a count just large enough to represent the threads in the core will be used.

cpuid_vendor_id

Optional attribute; read/write access; type: string. Vendor ID string for CPUID.

cpuid_vmx

Pseudo attribute; read-only access; type: integer. VMX feature as reported through CPUID function 1 ECX bit 5.

cr0

Optional attribute; read/write access; type: integer. Control register 0.

cr2

Optional attribute; read/write access; type: integer. Control register 2.

cr3

Optional attribute; read/write access; type: integer. Control register 3.

cr4

Optional attribute; read/write access; type: integer. Control register 4.

cr4_extension_mask

Optional attribute; read/write access; type: integer. Externally implemented cr4 bits.

cs

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

cstar

Optional attribute; read/write access; type: integer.

cstate

Optional attribute; read/write access; type: [ii]. C-state

cstate_listeners

Optional attribute; read/write access; type: [o*]. List of all devices to be notified on C-state change. Must implement the x86_cstate_notification interface.

current_context

Pseudo attribute; read/write access; type: object or nil. Current context object

current_virtual_context

Pseudo attribute; read/write access; type: object or nil. Current context relating to addresses before segmentation.

current_vmcs_ptr

Optional attribute; read/write access; type: integer. VMX mode current VMCS pointer.

cycles

Pseudo attribute; read/write access; type: integer. Time measured in cycles from machine start.

debug_len_10b_8_bytes

Optional attribute; read/write access; type: boolean. If this attribute is set to TRUE (FALSE is the default), then the 10b length encoding in DR7 is taken to mean 8 bytes. If it is false, then 10b means 8 bytes in long mode, but only one byte in legacy mode.

disable_block_merge

Optional attribute; read/write access; type: integer. Internal.

disabled_breakpoints_update_dr6

Optional attribute; read/write access; type: integer. Set to non-zero if you want debug breakpoints that are not enabled either through DR7.L nor DR7.G to still set the B bits in DR6.

do_not_schedule

Optional attribute; read/write access; type: boolean. Set to TRUE to prevent this object from being scheduled by the cell.

dr0

Optional attribute; read/write access; type: integer. Debug register 0.

dr1

Optional attribute; read/write access; type: integer. Debug register 1.

dr2

Optional attribute; read/write access; type: integer. Debug register 2.

dr3

Optional attribute; read/write access; type: integer. Debug register 3.

dr6

Optional attribute; read/write access; type: integer. Debug register 6.

dr7

Optional attribute; read/write access; type: integer. Debug register 7.

ds

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

eflags

Optional attribute; read/write access; type: integer. Flag register.

enable_effective_memory_type_calculation

Pseudo attribute; read/write access; type: boolean. If TRUE, the effective memory type field of memory transactions will always be calculated for all non-inquiry accesses. If FALSE, the effective memory type field may be left as X86_None.

enabled_flag

Optional attribute; read/write access; type: boolean. TRUE if the processor is enabled. If FALSE, it will see time (cycles) pass but not execute steps.

es

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

event_desc

Pseudo attribute; read-only access; integer indexed; indexed type: [[o|n,s,i]*]. ((object, description, time)*). All events in queue with a human-readable description. The attribute is indexed by queue (Sim_Queue_Step/Time).

exception_description

Pseudo attribute; read-only access; type: string or nil. Description of current exception. Only valid when read from the Core_Exception hap. The value can be Nil in which case the exception number, source, and optional error code can be used to gain an understanding of why the exception triggered.

exception_error_code

Pseudo attribute; read-only access; type: integer. Error code for the current exception. Only valid when read from the Core_Exception hap. This attribute is undefined for exceptions that do not have an error code.

ext

Optional attribute; read/write access; type: integer. A bit indicating if the current exception is external.

far_call_jmp_64

Optional attribute; read/write access; type: boolean. If this attribute is set to TRUE, far call and jmp instructions will have a 64-bit offset when the operand size is 64-bits. If FALSE, then the offset will be 32-bits with both 32-bit and 64-bit operand size.

ferr_status

Optional attribute; read/write access; type: integer. Status for the ferr output pin.

ferr_target

Optional attribute; read/write access; type: object or nil. Object to which the FERR pin (used for external x87 exception emulation) is connected.

fpu_control

Optional attribute; read/write access; type: integer. x87 FPU control register.

fpu_fopcode_compatibility_mode

Optional attribute; read/write access; type: boolean. Fopcode compatibility sub-mode.

fpu_last_instr_pointer

Optional attribute; read/write access; type: integer. FPU instruction pointer offset.

fpu_last_instr_selector

Optional attribute; read/write access; type: integer. FPU instruction pointer selector.

fpu_last_opcode

Optional attribute; read/write access; type: integer. FPU instruction opcode.

fpu_last_operand_pointer

Optional attribute; read/write access; type: integer. FPU operand pointer offset.

fpu_last_operand_selector

Optional attribute; read/write access; type: integer. FPU operand pointer selector.

fpu_regs

Optional attribute; read/write access; type: [[i{11}]{8}]. ((empty, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9){8}). X86 floating point registers. The 8 80-bits registers is stored as a list of 11 bytes. The first byte tells if the register is empty (1) or not (0). The other bytes contain the register value with the lowest (least significant) bits in b0 and the highest (most significant bits in b9.

fpu_status

Optional attribute; read/write access; type: integer. x87 FPU status register.

fpu_tag

Optional attribute; read/write access; type: integer. x87 FPU tag word.

freerun_enabled

Optional attribute; read/write access; type: boolean. Freerun mode enabled

freerun_max_ips

Optional attribute; read/write access; type: float. Maximum allowed value for the number of instructions executed per virtual second, expressed as a fraction of the current CPU frequency.

freerun_min_ips

Optional attribute; read/write access; type: float. Minimum allowed value for the number of instructions executed per virtual second, expressed as a fraction of the current CPU frequency.

freerun_speed

Optional attribute; read/write access; type: float. Freerun speed. A value of 1.0 means realtime.

freq_mhz

Pseudo attribute; read/write access; type: float or integer. Processor clock frequency in MHz.

frequency

Optional attribute; read/write access; type: [ii], [os], or object. Processor clock frequency in Hz, as a rational number [numerator, denominator], or as a frequency provider implementing the frequency. The legacy simple_dispatcher is also supported.

fs

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

gdtr_base

Optional attribute; read/write access; type: integer. Global descriptor table base.

gdtr_limit

Optional attribute; read/write access; type: integer. Global descriptor table limit.

gs

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

ia32_aperf

Pseudo attribute; read/write access; type: integer. Actual Performance Frequency Clock Count

ia32_bios_sign_id

Optional attribute; read/write access; type: integer. BIOS Update Signature ID

ia32_bios_updt_trig

Pseudo attribute; read/write access; type: integer. BIOS Update Trigger Register

ia32_clock_modulation

Optional attribute; read/write access; type: integer. Clock Modulation

ia32_cr_pat

Optional attribute; read/write access; type: integer. IA32_CR_PAT

ia32_debugctl

Optional attribute; read/write access; type: integer. Debug Control

ia32_ds_area

Optional attribute; read/write access; type: integer. DS Save Area

ia32_efer

Optional attribute; read/write access; type: integer. Extended Feature Enables

ia32_ext_xapic_cur_count

Optional attribute; read/write access; type: integer. x2APIC Current Count register

ia32_ext_xapic_div_conf

Optional attribute; read/write access; type: integer. x2APIC Divide Configuration register

ia32_ext_xapic_eoi

Optional attribute; read/write access; type: integer. x2APIC EOI register

ia32_ext_xapic_esr

Optional attribute; read/write access; type: integer. x2APIC Error Status register

ia32_ext_xapic_icr

Optional attribute; read/write access; type: integer. x2APIC Interrupt Command register

ia32_ext_xapic_init_count

Optional attribute; read/write access; type: integer. x2APIC Initial Count register

ia32_ext_xapic_irr0

Optional attribute; read/write access; type: integer. x2APIC Interrupt Request register bits [31:0]

ia32_ext_xapic_irr1

Optional attribute; read/write access; type: integer. x2APIC Interrupt Request register bits [63:32]

ia32_ext_xapic_irr2

Optional attribute; read/write access; type: integer. x2APIC Interrupt Request register bits [95:64]

ia32_ext_xapic_irr3

Optional attribute; read/write access; type: integer. x2APIC Interrupt Request register bits [127:96]

ia32_ext_xapic_irr4

Optional attribute; read/write access; type: integer. x2APIC Interrupt Request register bits [159:128]

ia32_ext_xapic_irr5

Optional attribute; read/write access; type: integer. x2APIC Interrupt Request register bits [191:160]

ia32_ext_xapic_irr6

Optional attribute; read/write access; type: integer. x2APIC Interrupt Request register bits [223:192]

ia32_ext_xapic_irr7

Optional attribute; read/write access; type: integer. x2APIC Interrupt Request register bits [255:224]

ia32_ext_xapic_isr0

Optional attribute; read/write access; type: integer. x2APIC In-Service register bits [31:0]

ia32_ext_xapic_isr1

Optional attribute; read/write access; type: integer. x2APIC In-Service register bits [63:32]

ia32_ext_xapic_isr2

Optional attribute; read/write access; type: integer. x2APIC In-Service register bits [95:64]

ia32_ext_xapic_isr3

Optional attribute; read/write access; type: integer. x2APIC In-Service register bits [127:96]

ia32_ext_xapic_isr4

Optional attribute; read/write access; type: integer. x2APIC In-Service register bits [159:128]

ia32_ext_xapic_isr5

Optional attribute; read/write access; type: integer. x2APIC In-Service register bits [191:160]

ia32_ext_xapic_isr6

Optional attribute; read/write access; type: integer. x2APIC In-Service register bits [223:192]

ia32_ext_xapic_isr7

Optional attribute; read/write access; type: integer. x2APIC In-Service register bits [255:224]

ia32_ext_xapic_ldr

Optional attribute; read/write access; type: integer. x2APIC Logical Destination register

ia32_ext_xapic_lvt_cmci

Optional attribute; read/write access; type: integer. x2APIC LVT Corrected Machine Check Interrupt register

ia32_ext_xapic_lvt_error

Optional attribute; read/write access; type: integer. x2APIC LVT Error register

ia32_ext_xapic_lvt_lint0

Optional attribute; read/write access; type: integer. x2APIC LVT LINT0 register

ia32_ext_xapic_lvt_lint1

Optional attribute; read/write access; type: integer. x2APIC LVT LINT1 register

ia32_ext_xapic_lvt_pmi

Optional attribute; read/write access; type: integer. x2APIC LVT Performance Monitor register

ia32_ext_xapic_lvt_thermal

Optional attribute; read/write access; type: integer. x2APIC LVT Thermal Sensor Interrupt register

ia32_ext_xapic_lvt_timer

Optional attribute; read/write access; type: integer. x2APIC LVT Timer Interrupt register

ia32_ext_xapic_ppr

Optional attribute; read/write access; type: integer. x2APIC Processor Priority register

ia32_ext_xapic_self_ipi

Optional attribute; read/write access; type: integer. x2APIC Self IPI register

ia32_ext_xapic_sivr

Optional attribute; read/write access; type: integer. x2APIC Spurious Interrupt Vector register

ia32_ext_xapic_tmr0

Optional attribute; read/write access; type: integer. x2APIC Trigger Mode register bits [31:0]

ia32_ext_xapic_tmr1

Optional attribute; read/write access; type: integer. x2APIC Trigger Mode register bits [63:32]

ia32_ext_xapic_tmr2

Optional attribute; read/write access; type: integer. x2APIC Trigger Mode register bits [95:64]

ia32_ext_xapic_tmr3

Optional attribute; read/write access; type: integer. x2APIC Trigger Mode register bits [127:96]

ia32_ext_xapic_tmr4

Optional attribute; read/write access; type: integer. x2APIC Trigger Mode register bits [159:128]

ia32_ext_xapic_tmr5

Optional attribute; read/write access; type: integer. x2APIC Trigger Mode register bits [191:160]

ia32_ext_xapic_tmr6

Optional attribute; read/write access; type: integer. x2APIC Trigger Mode register bits [223:192]

ia32_ext_xapic_tmr7

Optional attribute; read/write access; type: integer. x2APIC Trigger Mode register bits [255:224]

ia32_ext_xapic_tpr

Optional attribute; read/write access; type: integer. x2APIC Task Priority register

ia32_ext_xapic_version

Optional attribute; read/write access; type: integer. x2APIC Version register

ia32_ext_xapicid

Optional attribute; read/write access; type: integer. x2APIC ID register

ia32_feature_control

Optional attribute; read/write access; type: integer. Control Features in Intel64 processor

ia32_fixed_ctr0

Optional attribute; read/write access; type: integer. Fixed-Function Performance Counter Register 0

ia32_fixed_ctr1

Optional attribute; read/write access; type: integer. Fixed-Function Performance Counter Register 1

ia32_fixed_ctr2

Optional attribute; read/write access; type: integer. Fixed-Function Performance Counter Register 2

ia32_fixed_ctr_ctrl

Optional attribute; read/write access; type: integer. Fixed-Function-Counter Control Register

ia32_fmask

Optional attribute; read/write access; type: integer. System Call Flag Mask

ia32_fs_base

Pseudo attribute; read/write access; type: integer. Map of BASE Address of FS

ia32_gs_base

Pseudo attribute; read/write access; type: integer. Map of BASE Address of GS

ia32_kernel_gs_base

Optional attribute; read/write access; type: integer. Swap Target of BASE Address of GS

ia32_lstar

Optional attribute; read/write access; type: integer. IA-32e Mode System Call Target Address

ia32_mc0_addr

Optional attribute; read/write access; type: integer. MC0_ADDR

ia32_mc0_ctl

Optional attribute; read/write access; type: integer. MC0_CTL

ia32_mc0_ctl2

Optional attribute; read/write access; type: integer.

ia32_mc0_status

Optional attribute; read/write access; type: integer. MC0_STATUS

ia32_mc1_addr

Optional attribute; read/write access; type: integer. MC1_ADDR

ia32_mc1_ctl

Optional attribute; read/write access; type: integer. MC1_CTL

ia32_mc1_ctl2

Optional attribute; read/write access; type: integer.

ia32_mc1_status

Optional attribute; read/write access; type: integer. MC1_STATUS

ia32_mc2_addr

Optional attribute; read/write access; type: integer. MC2_ADDR

ia32_mc2_ctl

Optional attribute; read/write access; type: integer. MC2_CTL

ia32_mc2_ctl2

Optional attribute; read/write access; type: integer.

ia32_mc2_status

Optional attribute; read/write access; type: integer. MC2_STATUS

ia32_mc3_ctl2

Optional attribute; read/write access; type: integer.

ia32_mc4_ctl2

Optional attribute; read/write access; type: integer.

ia32_mc5_ctl2

Optional attribute; read/write access; type: integer.

ia32_mc6_ctl2

Optional attribute; read/write access; type: integer.

ia32_mc7_ctl2

Optional attribute; read/write access; type: integer.

ia32_mc7_status

Pseudo attribute; read/write access; type: integer.

ia32_mc8_ctl2

Optional attribute; read/write access; type: integer.

ia32_mc8_status

Pseudo attribute; read/write access; type: integer.

ia32_mcg_cap

Optional attribute; read/write access; type: integer. Global Machine Check Capability

ia32_mcg_status

Optional attribute; read/write access; type: integer. Global Machine Check Status

ia32_misc_enable

Optional attribute; read/write access; type: integer. Enable Misc. Processor Features

ia32_monitor_filter_size

Optional attribute; read/write access; type: integer. Monitor/Mwait Address Range Determination

ia32_mperf

Pseudo attribute; read/write access; type: integer. Maximum Performance Frequency Clock Count

ia32_mtrr_def_type

Optional attribute; read/write access; type: integer. Default Memory Types

ia32_mtrr_fix_16k_80000

Optional attribute; read/write access; type: integer. MTRRfix16K_80000

ia32_mtrr_fix_16k_a0000

Optional attribute; read/write access; type: integer. MTRRfix16K_A0000

ia32_mtrr_fix_4k_c0000

Optional attribute; read/write access; type: integer. MTRRfix4K_C0000

ia32_mtrr_fix_4k_c8000

Optional attribute; read/write access; type: integer. MTRRfix4K_C8000

ia32_mtrr_fix_4k_d0000

Optional attribute; read/write access; type: integer. MTRRfix4K_D0000

ia32_mtrr_fix_4k_d8000

Optional attribute; read/write access; type: integer. MTRRfix4K_D8000

ia32_mtrr_fix_4k_e0000

Optional attribute; read/write access; type: integer. MTRRfix4K_E0000

ia32_mtrr_fix_4k_e8000

Optional attribute; read/write access; type: integer. MTRRfix4K_E8000

ia32_mtrr_fix_4k_f0000

Optional attribute; read/write access; type: integer. MTRRfix4K_F0000

ia32_mtrr_fix_4k_f8000

Optional attribute; read/write access; type: integer. MTRRfix4K_F8000

ia32_mtrr_fix_64k_00000

Optional attribute; read/write access; type: integer. MTRRfix64K_00000

ia32_mtrr_physbase0

Optional attribute; read/write access; type: integer. MTRRphysBase0

ia32_mtrr_physbase1

Optional attribute; read/write access; type: integer. MTRRphysBase1

ia32_mtrr_physbase2

Optional attribute; read/write access; type: integer. MTRRphysBase2

ia32_mtrr_physbase3

Optional attribute; read/write access; type: integer. MTRRphysBase3

ia32_mtrr_physbase4

Optional attribute; read/write access; type: integer. MTRRphysBase4

ia32_mtrr_physbase5

Optional attribute; read/write access; type: integer. MTRRphysBase5

ia32_mtrr_physbase6

Optional attribute; read/write access; type: integer. MTRRphysBase6

ia32_mtrr_physbase7

Optional attribute; read/write access; type: integer. MTRRphysBase7

ia32_mtrr_physmask0

Optional attribute; read/write access; type: integer. MTRRphysMask0

ia32_mtrr_physmask1

Optional attribute; read/write access; type: integer. MTRRphysMask1

ia32_mtrr_physmask2

Optional attribute; read/write access; type: integer. MTRRphysMask2

ia32_mtrr_physmask3

Optional attribute; read/write access; type: integer. MTRRphysMask3

ia32_mtrr_physmask4

Optional attribute; read/write access; type: integer. MTRRphysMask4

ia32_mtrr_physmask5

Optional attribute; read/write access; type: integer. MTRRphysMask5

ia32_mtrr_physmask6

Optional attribute; read/write access; type: integer. MTRRphysMask6

ia32_mtrr_physmask7

Optional attribute; read/write access; type: integer. MTRRphysMask7

ia32_mtrrcap

Optional attribute; read/write access; type: integer. MTRR Capability

ia32_p5_mc_addr

Optional attribute; read/write access; type: integer.

ia32_p5_mc_type

Optional attribute; read/write access; type: integer.

ia32_pebs_enable

Optional attribute; read/write access; type: integer. PEBS Control

ia32_perf_capabilities

Optional attribute; read/write access; type: integer.

ia32_perf_ctl

Optional attribute; read/write access; type: integer.

ia32_perf_global_ctrl

Pseudo attribute; read/write access; type: integer. Global Performance Counter Control

ia32_perf_global_status

Optional attribute; read/write access; type: integer. Global Performance Counter Status

ia32_perf_status

Optional attribute; read/write access; type: integer.

ia32_perfevtsel0

Optional attribute; read/write access; type: integer. Performance Event Select Register 0

ia32_perfevtsel1

Optional attribute; read/write access; type: integer. Performance Event Select Register 1

ia32_perfevtsel2

Optional attribute; read/write access; type: integer.

ia32_perfevtsel3

Optional attribute; read/write access; type: integer.

ia32_platform_id

Optional attribute; read/write access; type: integer. Platform ID

ia32_pmc0

Optional attribute; read/write access; type: integer. Performance counter register

ia32_pmc1

Optional attribute; read/write access; type: integer. Performance counter register

ia32_pmc2

Optional attribute; read/write access; type: integer. Performance counter register

ia32_pmc3

Optional attribute; read/write access; type: integer. Performance counter register

ia32_reserved_194

Optional attribute; read/write access; type: integer. Reserved MSR at 0x194

ia32_smrr_physbase

Pseudo attribute; read/write access; type: integer.

ia32_smrr_physmask

Pseudo attribute; read/write access; type: integer.

ia32_star

Optional attribute; read/write access; type: integer. System Call Target Address

ia32_sysenter_cs

Optional attribute; read/write access; type: integer. SYSENTER_CS_MSR

ia32_sysenter_eip

Optional attribute; read/write access; type: integer. SYSENTER_EIP_MSR

ia32_sysenter_esp

Optional attribute; read/write access; type: integer. SYSENTER_ESP_MSR

ia32_therm_interrupt

Optional attribute; read/write access; type: integer. Thermal Interrupt Control

ia32_therm_status

Optional attribute; read/write access; type: integer. Thermal Monitor Status

ia32_time_stamp_counter

Optional attribute; read/write access; type: integer. Time-Stamp Counter

ia32_tsc_aux

Optional attribute; read/write access; type: integer. AUXILIARY TSC Signature

ia32_unknown_130

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x130

ia32_unknown_131

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x131

ia32_unknown_178

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x178

ia32_unknown_19d

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x19d

ia32_unknown_1a4

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1a4

ia32_unknown_1a7

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1a7

ia32_unknown_1aa

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1aa

ia32_unknown_1ac

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1ac

ia32_unknown_1c6

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1c6

ia32_unknown_1db

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1db

ia32_unknown_1dc

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1dc

ia32_unknown_1f0

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1f0

ia32_unknown_1f1

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1f1

ia32_unknown_1fc

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1fc

ia32_unknown_2a

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x2a

ia32_unknown_2d

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x2d

ia32_unknown_2e

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x2e

ia32_unknown_2e0

Optional attribute; read/write access; type: integer. Unknown MSR at 0x2e0

ia32_unknown_300

Optional attribute; read/write access; type: integer. Unknown MSR at 0x300

ia32_unknown_33

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x33

ia32_unknown_35

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x35

ia32_unknown_398

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x398

ia32_unknown_399

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x399

ia32_unknown_39a

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x39a

ia32_unknown_3d0

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x3d0

ia32_unknown_3d1

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x3d1

ia32_unknown_3d8

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x3d8

ia32_unknown_3d9

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x3d9

ia32_unknown_3fe

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x3fe

ia32_unknown_4b

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4b

ia32_unknown_9b

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x9b

ia32_unknown_e2

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xe2

ia32_unknown_e4

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xe4

ia32_vmx_basic

Optional attribute; read/write access; type: integer. Reporting Register of Basic VMX Capabilities

ia32_vmx_cr0_fixed0

Optional attribute; read/write access; type: integer. Capability Reporting Register of CR0 Bits Fixed to 0

ia32_vmx_cr0_fixed1

Optional attribute; read/write access; type: integer. Capability Reporting Register of CR0 Bits Fixed to 1

ia32_vmx_cr4_fixed0

Optional attribute; read/write access; type: integer. Capability Reporting Register of CR4 Bits Fixed to 0

ia32_vmx_cr4_fixed1

Optional attribute; read/write access; type: integer. Capability Reporting Register of CR4 Bits Fixed to 1

ia32_vmx_entry_ctls

Optional attribute; read/write access; type: integer. Capability Reporting Register of VM-entry Controls

ia32_vmx_ept_vpid_cap

Optional attribute; read/write access; type: integer. Capability Reporting Register of EPT and VPID

ia32_vmx_exit_ctls

Optional attribute; read/write access; type: integer. Capability Reporting Register of VM-exit Controls

ia32_vmx_misc

Optional attribute; read/write access; type: integer. Reporting Register of Miscellaneous VMX Capabilities

ia32_vmx_pinbased_ctls

Optional attribute; read/write access; type: integer. Capability Reporting Register of Pin-based VM-execution Controls

ia32_vmx_procbased_ctls

Optional attribute; read/write access; type: integer. Capability Reporting Register of Primary Processor-based VM-execution Controls

ia32_vmx_procbased_ctls2

Optional attribute; read/write access; type: integer. Capability Reporting Register of Secondary Processor-based VM-execution Controls

ia32_vmx_true_entry_ctls

Optional attribute; read/write access; type: integer. Capability Reporting Register of VM-entry Controls

ia32_vmx_true_exit_ctls

Optional attribute; read/write access; type: integer. Capability Reporting Register of VM-exit Controls

ia32_vmx_true_pinbased_ctls

Optional attribute; read/write access; type: integer. Capability Reporting Register of Pin-based VM-execution Controls

ia32_vmx_true_procbased_ctls

Optional attribute; read/write access; type: integer. Capability Reporting Register of Primary Processor-based VM-execution Controls

ia32_vmx_vmcs_enum

Optional attribute; read/write access; type: integer. Capability Reporting Register of VMCS Field Enumeration

idtr_base

Optional attribute; read/write access; type: integer. Interrupt descriptor table base.

idtr_limit

Optional attribute; read/write access; type: integer. Interrupt descriptor table limit.

ignne_status

Optional attribute; read/write access; type: integer. Status for the ignne input pin.

ignore_page_failed_before

Pseudo attribute; read/write access; type: boolean. If TRUE, the model will keep trying to cache memory through direct memory even if it fails.

in_smm

Optional attribute; read/write access; type: integer. Set iff the processor is in system management mode.

init_vm_monitor

Pseudo attribute; read/write access; type: boolean. Setting this attribute to true enables the use of virtual machine monitor acceleration. The attribute will flag it as an illegal value if the virtual machine monitor kernel module could not be found, or if there was an error opening a connection to it (the attribute reads back as false in those cases). Acceleration will not be used unless the use_vm_monitor attribute is also set to true.

inject_vmexit

Pseudo attribute; write-only access; type: integer. Force a VMEXIT from VMX mode.

is_stalling

Optional attribute; read/write access; type: boolean. TRUE if the processor is currently stalling by request of a timing-model.

lar_ldt_lm_invalid

Optional attribute; read/write access; type: boolean. If this attribute is set to TRUE (FALSE is the default), then the LDT segment type will not be considered valid for the LAR instruction while operating in long mode.

last_io

Optional attribute; read/write access; type: [iiii]. Information about last IO instruction (pc, lin_addr, iinfo, step_count).

latch_init

Optional attribute; read/write access; type: integer. INIT is currently latched.

latch_nmi

Optional attribute; read/write access; type: integer. NMI is currently latched.

latch_smi

Optional attribute; read/write access; type: integer. SMI is currently latched.

ldtr

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

load_far_ptr_64

Optional attribute; read/write access; type: boolean. If TRUE, the load far pointer instructions are extended to 64-bit when executed with a 64-bit operand size. The default is FALSE, which treats 64-bit and 32-bit operand size the same.

ma_prot

Optional attribute; read/write access; type: string. MP protocol. One of {'msi', 'ww', 'wwp'}

mc0_misc

Optional attribute; read/write access; type: integer.

mc1_misc

Optional attribute; read/write access; type: integer.

mca_concurrency_mode

Optional attribute; read/write access; type: integer. Multicore Accelerator mode used by processor. One of Sim_Concurrency_Mode_Serialized (1), Sim_Concurrency_Mode_Serialized_Memory (2), or Sim_Concurrency_Mode_Full (4)

min_cacheline_size

Pseudo attribute; read-only access; type: integer. The minimum size (in bytes) of a cache line that can be represented by Simics (when connecting a cache memhier).

monitor_info

Optional attribute; read/write access; type: [bbi]. (armed, fired, address). Information about MONITOR. The MONITOR is armed if the first element in the list is true. The last element in the list contains the monitored physical address, and the second element indicates if the monitor has fired which means that the CPU should wake up.

mov_default32

Optional attribute; read/write access; type: boolean. If TRUE, movs to or from control and debug registers will default to 32-bits in 64-bit mode. If FALSE (which is the default value), such moves will be fixed at 64-bits.

msr_aperf

Optional attribute; read/write access; type: integer. Value of the APERF MSR.

msr_core_c3_residency

Pseudo attribute; read/write access; type: integer.

msr_core_c6_residency

Pseudo attribute; read/write access; type: integer.

msr_gq_snoop_mesf

Pseudo attribute; read/write access; type: integer.

msr_lastbranch_0_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 0 From IP

msr_lastbranch_0_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 0 To IP

msr_lastbranch_10_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 10 From IP

msr_lastbranch_10_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 10 To IP

msr_lastbranch_11_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 11 From IP

msr_lastbranch_11_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 11 To IP

msr_lastbranch_12_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 12 From IP

msr_lastbranch_12_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 12 To IP

msr_lastbranch_13_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 13 From IP

msr_lastbranch_13_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 13 To IP

msr_lastbranch_14_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 14 From IP

msr_lastbranch_14_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 14 To IP

msr_lastbranch_15_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 15 From IP

msr_lastbranch_15_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 15 To IP

msr_lastbranch_1_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 1 From IP

msr_lastbranch_1_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 1 To IP

msr_lastbranch_2_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 2 From IP

msr_lastbranch_2_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 2 To IP

msr_lastbranch_3_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 3 From IP

msr_lastbranch_3_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 3 To IP

msr_lastbranch_4_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 4 From IP

msr_lastbranch_4_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 4 To IP

msr_lastbranch_5_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 5 From IP

msr_lastbranch_5_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 5 To IP

msr_lastbranch_6_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 6 From IP

msr_lastbranch_6_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 6 To IP

msr_lastbranch_7_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 7 From IP

msr_lastbranch_7_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 7 To IP

msr_lastbranch_8_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 8 From IP

msr_lastbranch_8_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 8 To IP

msr_lastbranch_9_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 9 From IP

msr_lastbranch_9_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 9 To IP

msr_lastbranch_tos

Optional attribute; read/write access; type: integer. Last Branch Record Stack TOS

msr_lbr_select

Pseudo attribute; read/write access; type: integer. Last Branch Record Filtering Select Register

msr_ler_from_lip

Optional attribute; read/write access; type: integer. Last Exception Record From Linear IP

msr_ler_to_lip

Optional attribute; read/write access; type: integer. Last Exception Record To Linear IP

msr_mc3_addr

Optional attribute; read/write access; type: integer. MC3_ADDR

msr_mc3_ctl

Optional attribute; read/write access; type: integer. MC3_CTL

msr_mc3_status

Optional attribute; read/write access; type: integer. MC3_STATUS

msr_mc4_ctl

Optional attribute; read/write access; type: integer. MC4_CTL

msr_mc4_status

Optional attribute; read/write access; type: integer. MC4_STATUS

msr_mc5_addr

Pseudo attribute; read/write access; type: integer.

msr_mc5_ctl

Optional attribute; read/write access; type: integer.

msr_mc5_misc

Optional attribute; read/write access; type: integer.

msr_mc5_status

Pseudo attribute; read/write access; type: integer.

msr_mc6_addr

Optional attribute; read/write access; type: integer.

msr_mc6_ctl

Optional attribute; read/write access; type: integer.

msr_mc6_misc

Optional attribute; read/write access; type: integer.

msr_mc6_status

Pseudo attribute; read/write access; type: integer.

msr_mc7_ctl

Optional attribute; read/write access; type: integer.

msr_mc8_addr

Optional attribute; read/write access; type: integer.

msr_mc8_ctl

Optional attribute; read/write access; type: integer.

msr_mc8_misc

Optional attribute; read/write access; type: integer.

msr_mperf

Optional attribute; read/write access; type: integer. Value of the MPERF MSR.

msr_offcore_rspo

Pseudo attribute; read/write access; type: integer. Offcore Response Event Select Register

msr_pebs_ld_latm

Pseudo attribute; read/write access; type: integer.

msr_pkg_c3_residency

Pseudo attribute; read/write access; type: integer.

msr_pkg_c6_residency

Pseudo attribute; read/write access; type: integer.

msr_pkg_c7_residency

Pseudo attribute; read/write access; type: integer.

msr_platform_info

Pseudo attribute; read/write access; type: integer.

msr_temperature_target

Pseudo attribute; read/write access; type: integer.

msr_turbo_ratio_limit

Pseudo attribute; read/write access; type: integer.

msr_uncore_addr_opcode_match

Pseudo attribute; read/write access; type: integer.

msr_uncore_fixed_ctr0

Pseudo attribute; read/write access; type: integer.

msr_uncore_fixed_ctr_ctrl

Pseudo attribute; read/write access; type: integer.

msr_uncore_perf_global_ctrl

Pseudo attribute; read/write access; type: integer.

msr_uncore_perf_global_ovf_ctrl

Pseudo attribute; read/write access; type: integer.

msr_uncore_perf_global_status

Pseudo attribute; read/write access; type: integer.

msr_uncore_perfevtsel0

Pseudo attribute; read/write access; type: integer.

msr_uncore_perfevtsel1

Pseudo attribute; read/write access; type: integer.

msr_uncore_perfevtsel2

Pseudo attribute; read/write access; type: integer.

msr_uncore_perfevtsel3

Pseudo attribute; read/write access; type: integer.

msr_uncore_perfevtsel4

Pseudo attribute; read/write access; type: integer.

msr_uncore_perfevtsel5

Pseudo attribute; read/write access; type: integer.

msr_uncore_perfevtsel6

Pseudo attribute; read/write access; type: integer.

msr_uncore_perfevtsel7

Pseudo attribute; read/write access; type: integer.

msr_uncore_pmc0

Pseudo attribute; read/write access; type: integer.

msr_uncore_pmc1

Pseudo attribute; read/write access; type: integer.

msr_uncore_pmc2

Pseudo attribute; read/write access; type: integer.

msr_uncore_pmc3

Pseudo attribute; read/write access; type: integer.

msr_uncore_pmc4

Pseudo attribute; read/write access; type: integer.

msr_uncore_pmc5

Pseudo attribute; read/write access; type: integer.

msr_uncore_pmc6

Pseudo attribute; read/write access; type: integer.

msr_uncore_pmc7

Pseudo attribute; read/write access; type: integer.

multicore_accelerator_enabled

Pseudo attribute; read/write access; type: boolean. Multicore Accelerator enabled for processor.

mwait_extensions

Optional attribute; read/write access; type: integer. Extensions passed to the MWAIT instruction through ECX.

mwait_hints

Optional attribute; read/write access; type: integer. Hints passed to the MWAIT instruction through EAX.

mxcsr

Optional attribute; read/write access; type: integer. XMM control register.

mxcsr_mask

Optional attribute; read/write access; type: integer. MXCSR mask (0 means 0xffbf).

near_branches_64

Optional attribute; read/write access; type: boolean. Determines how near branches are handled in 64-bit mode. If the attribute is TRUE, then the operand size is fixed at 64-bits, while the default value of FALSE allows an override to 16 bits.

non_architecturally_disabled

Optional attribute; read/write access; type: boolean. If true, the processor is disabled by explicit user action and will not execute instructions until re-enabled by user. No architectural transitions, such as resets, will re-enable it on their own.

null_clear_base_and_limit

Optional attribute; read/write access; type: boolean. If TRUE, a load of a NULL selector to a segment register will clear the base and limit values.

one_step_per_string_instruction

Optional attribute; read/write access; type: boolean. If TRUE, each un-interrupted run of a repeated string instruction (CMPS, LODS, MOVS, SCAS, STOS) will be counted as a single step as compared to each iteration being a step in the default model. Due to how instruction counting works in the hardware performance counters, this attribute must be set to TRUE for VMP to work. Setting this attribute to FALSE will disable VMP.

outside_memory_whitelist

Optional attribute; read/write access; type: [i|[ii]|[iii]*]. ((address, length, hits)*).

List of physical address ranges that do not map to anything. length is the length of each interval in bytes. An interval with both address and length being 0 denotes the entire address space. hits is the number of times that particular interval has been accessed, and can be omitted when set.

Accesses to physical addresses with no targets will trigger a specific hap whose default action is to break the simulation. However, if the address falls into one of the ranges specified in this whitelist, the hap will not be triggered (but still being counted). The behavior in this scenario is architecture dependent. It may or may not trigger an architecture specific exception, and the simulation may or may not be interrupted.

See also the Core_Address_Not_Mapped hap.

package_group

Optional attribute; read/write access; type: object or nil. The first Simics processor contained in the same multicore package. Used for shared MSR:s. Needs to point to a processor of the same class.

pause_slow_cycles

Optional attribute; read/write access; type: integer. Stall cycles for the PAUSE instruction. This additional stall is there to allow execution of spin-locks to consume more virtual time per iteration, leading to faster simulation performance. The default for VMP is to stall for 10 micro-seconds.

pdpte

Optional attribute; read/write access; type: [i{4}]. PDPTE registers.

pending_debug_exception

Optional attribute; read/write access; type: integer. A debug exception is pending. Additional information about the exception is stored in pending_debug_exception_dr6.

pending_debug_exception_dr6

Optional attribute; read/write access; type: integer. Valid if pending_debug_exception is non-zero. Attribute has the same format as the DR6 register.

pending_exception

Optional attribute; read/write access; type: boolean. If this attribute is TRUE, then an exception or interrupt is pending and will be delivered before the next instruction.

pending_exception_error_code

Optional attribute; read/write access; type: integer. Error code to be delivered on the next pending exception if pending_exception_error_code_valid is set.

pending_exception_error_code_valid

Optional attribute; read/write access; type: boolean. If this attribute is TRUE, then the pending exception has an error code.

pending_exception_instruction_length

Optional attribute; read/write access; type: integer. Length of pending trap instruction.

pending_exception_set_rf

Optional attribute; read/write access; type: boolean. If this attribute is TRUE, then the resume flag bit will be set in the pushed image of the flag register.

pending_exception_type

Optional attribute; read/write access; type: integer. Type of pending exception.

pending_exception_vector

Optional attribute; read/write access; type: integer. Pending interrupt or exception vector. Only valid if pending_exception is set.

pending_init

Optional attribute; read/write access; type: boolean. Pending INIT

pending_reset

Optional attribute; read/write access; type: boolean. Pending RESET

pending_start_up

Optional attribute; read/write access; type: integer. If 1, a startup IPI is pending.

pending_start_up_address

Optional attribute; read/write access; type: integer. The address to start on if there is a pending startup IPI.

physical_memory

Required attribute; read/write access; type: object. Physical memory space. Must implement memory-space, breakpoint and breakpoint_query interfaces.

port_io_slow_cycles

Optional attribute; read/write access; type: integer. Stall cycles for port-mapped I/O. This additional stall is there to allow I/O poll loops to consume more virtual time per iteration, leading to faster simulation performance. The default for VMP is to stall for 10 micro-seconds.

port_space

Required attribute; read/write access; type: object. I/O space of the cpu targeted by the IN, INS, OUT, and OUTS instructions. Must implement either the port interface (typically an instance of the port-space class), or the lookup interface (typically an instance of the memory-space class).

processor_number

Optional attribute; read/write access; type: integer. Simics internal number for an instance of the 'processor_info' interface. Each instance must have a unique number. This attribute can only be set as part of an initial configuration.

r10

Optional attribute; read/write access; type: integer. General purpose register.

r11

Optional attribute; read/write access; type: integer. General purpose register.

r12

Optional attribute; read/write access; type: integer. General purpose register.

r13

Optional attribute; read/write access; type: integer. General purpose register.

r14

Optional attribute; read/write access; type: integer. General purpose register.

r15

Optional attribute; read/write access; type: integer. General purpose register.

r8

Optional attribute; read/write access; type: integer. General purpose register.

r9

Optional attribute; read/write access; type: integer. General purpose register.

rax

Optional attribute; read/write access; type: integer. General purpose register.

rbp

Optional attribute; read/write access; type: integer. General purpose register.

rbx

Optional attribute; read/write access; type: integer. General purpose register.

rcx

Optional attribute; read/write access; type: integer. General purpose register.

rdi

Optional attribute; read/write access; type: integer. General purpose register.

rdtsc_slow_cycles

Optional attribute; read/write access; type: integer. Stall cycles for the RDTSC and RDTSCP instructions. This additional stall is there to allow time expiration loops to consume more virtual time per iteration, leading to faster simulation performance. The default for VMP is to stall for 10 micro-seconds.

rdx

Optional attribute; read/write access; type: integer. General purpose register.

rip

Optional attribute; read/write access; type: integer. Instruction pointer.

rsi

Optional attribute; read/write access; type: integer. General purpose register.

rsp

Optional attribute; read/write access; type: integer. General purpose register.

seg_push_zero_pad

Optional attribute; read/write access; type: boolean. If this attribute is set to TRUE (which is the default), then segment register push instructions will pad the push with zero bytes up to the width of the push. If false, then that memory will be kept untouched.

shared_physical_memory

Optional attribute; read/write access; type: object or nil. Points to the object representing the memory space shared between threads/cores. This is used to set up the monitoring to emulate MONITOR/MWAIT. If this is set to Nil, then MONITOR/MWAIT will time-out at the end of each time-quantum which is likely to result in non-optimal performance especially when the quantum is rather short.

simulation_mode

Pseudo attribute; read-only access; type: integer. The simulation mechanism used for the processor. One of the values of the simulation_mode_t enum.

skip_canonical_logical_check

Optional attribute; read/write access; type: boolean. If TRUE, no canonical check is performed on the logical address during address translation. A canonical check is always performed on the linear address, regardless of the setting of this attribute. The default value is FALSE, performing canonical checks on both the logical and linear addresses.

smi_count

Optional attribute; read/write access; type: integer. Counts the number of occurrences of the SMM.

smm_base

Optional attribute; read/write access; type: integer. SMM base.

smm_handler

Optional attribute; read/write access; type: [os], object, or nil. Object implementing the x86_smm interface.

smm_listeners

Optional attribute; read/write access; type: [o*]. List of all devices to be notified on transitions in or out of system management mode (SMM). Must implement the x86_smm_notification interface.

sp_mask_non64

Optional attribute; read/write access; type: boolean. If this attribute is set to TRUE (FALSE is the default), then the stack pointer will be masked to 32-bits after the 16-byte alignment when an exception is taken from a mode other than 64-bit mode while operating in long mode.

ss

Optional attribute; read/write access; type: [i{11}]. Segment register. All fields are stored in a list of integers as follows: (selector, b, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

stall_time

Optional attribute; read/write access; type: integer. The number of cycles the processor will stall

stalling_info

Optional attribute; read/write access; type: [iii]. If is_stalling is set, this contains information about the current memory operation.

step_per_cycle_mode

Optional attribute; read/write access; type: string. "constant" indicates a constant finite step/cycle factor; "infinite" means that steps are run without advancing time.

step_queue

Optional attribute; read/write access; type: [[o|n,s,a,s,i]*]. ((object, evclass, value, slot, step)*). Pending step queue events.

steps

Optional attribute; read/write access; type: integer. Number steps executed since machine start.

system

Optional attribute; read/write access; type: object or nil. System object.

telemetry_providers

Pseudo attribute; read/write access; type: [o*]. List of objects that provides telemetry for this core

temporary_interrupt_mask

Optional attribute; read/write access; type: integer. If non-zero, interrupts are temporarily disabled even though EFLAGS.IF may be set.

threads

Optional attribute; read/write access; type: [o{1}], [o{2}], [o{3}], [o{4}], or nil. List of Simics processors representing threads in the physical processor core. Needs to point to objects of the same class as for the object where the attribute is being set.

time_queue

Pseudo attribute; read/write access; type: [[o|n,s,a,s|n,i]*]. ((object, evclass, value, slot, cycle)*). Pending time queue events.

tlb

Required attribute; read/write access; type: object. Object handling the TLBs for this CPU.

tr

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

tsc_invariant_freq

Optional attribute; read/write access; type: integer. Rate at which TSC (if TSC invariant feature supported) and IA32_MPERF MSR are incremented in cycles/second.

ucode_signature

Optional attribute; read/write access; type: integer or nil. Can be either: None - no microcode update has happened since #RESET or an integer - microcode signature after the update.

use_halt_steps

Optional attribute; read/write access; type: boolean. Advance the step counter as well as the cycle counter when the CPU is idle. Defaults to FALSE.

vm_assert_object

Pseudo attribute; read/write access; type: object or nil. VMP-mode state-assertion object.

vm_autohyper_step_threshold

Pseudo attribute; read/write access; type: integer. Do not enter VMP if fewer steps has been executed since last time autohyper triggered (since the execution is likely handled by autohyper again). Default 30 steps.

vm_backoff_enabled

Pseudo attribute; read/write access; type: boolean. VMP backoff mechanism enable.

vm_block_cnt

Optional attribute; read/write access; type: integer. Execution with VMP will be prevented if this attribute is non-zero. This attribute should normally be modified using the x86_vmp_control interface.

vm_break_step

Pseudo attribute; read/write access; type: integer. If set to non-zero, the VM-monitor will silently break execution as soon as possible after the specified step without impacting the normal execution flow.

vm_compatible_config

Optional attribute; read/write access; type: boolean. This attribute should be set to TRUE if the machine configuration is VMP compatible.

vm_core2_bug

Pseudo attribute; read-only access; type: boolean. Set if the host cpu might be affected by a hardware bug.

vm_cpu_migration_dbg

Pseudo attribute; read/write access; type: boolean. Internal. Used to test state migration between host cpus.

vm_debug_trace

Pseudo attribute; read/write access; type: integer. If 1, the VMP kernel module will collect VMX traces. If 2, logging will occur to the console or to a file.

vm_disable_reason

Pseudo attribute; read-only access; type: string or nil. Reason for using turbo instead of VM acceleration.

vm_dump_trace

Pseudo attribute; write-only access; type: boolean. Dump VM-monitor trace information (only collected if vm_debug_trace is set).

vm_dump_vmcs

Pseudo attribute; write-only access; type: string. Dump host VMCS.

vm_host_has_vmx

Pseudo attribute; read-only access; type: boolean. If TRUE, host cpus support the virtual machine extensions (VMX).

vm_info

Pseudo attribute; read-only access; type: dictionary or nil. Internal. Information about VMXMON.

vm_monitor_statistics

Pseudo attribute; read/write access; type: [[i*][i*][i*]]. Internal, used for performance evaluation.

vm_pspace_sharable

Optional attribute; read/write access; type: boolean. Set if the physical address space may be shared with the other CPU cores.

vm_sched_affinity

Pseudo attribute; read/write access; type: [b+]. Wire process to a subset of available hardware threads.

vm_step_threshold

Pseudo attribute; read/write access; type: integer. Threshold below which the monitor is not used.

vm_stepi_dbg

Pseudo attribute; read/write access; type: boolean. If TRUE set, the VMP kernel module will use CR0.TF to stop execution after each instruction (for debugging purposes).

vm_trace_file

Pseudo attribute; read/write access; type: string or nil. File for storing VM-monitor traces; Used for debugging VMP.

vm_use_pspace_sharing

Pseudo attribute; read/write access; type: boolean. Set if the physical address space sharing should be used when possible.

vm_using_pspace_sharing

Pseudo attribute; read-only access; type: boolean. Returns TRUE if physical address space sharing is in use.

vmcs_content

Optional attribute; read/write access; type: [[ii]*]. The register content of the currently loaded Intel® Virtual Machine Control Structure (Intel® VMCS). Not valid if current_vmcs_ptr is not valid. Not all VMCS fields are necessarily present in this attribute since they are not kept in CPU registers. Remaining fields will be in the VMCS memory area.

vmcs_launch_state

Pseudo attribute; read/write access; type: string or nil. VMCS launch state.

vmcs_layout

Optional attribute; read/write access; type: [[isiii]*]. Exports the implementation specific layout of the Intel® Virtual Machine Control Structure (Intel® VMCS) area. This information can be used to display the current VMCS status, as well as to track changes in the VMCS. Sublist format (index, name, size, offset, attr). A field is stored as a size byte integer at offset in the VMCS.

vmx_mode

Optional attribute; read/write access; type: integer. VMX mode. 0: Not in VMX operation. 1: In VMX root operation. 2: In VMX non-root operation.

vmx_pending_exit

Optional attribute; read/write access; type: integer or nil. Pending VMX exit reason. See appendix A of the VMX specification for encoding. Nil if no VMX exit is pending.

vmxon_ptr

Optional attribute; read/write access; type: integer. VMXON pointer.

waiting_device

Optional attribute; read/write access; type: object or nil. The device that requested the waiting interrupt. Only valid when waiting_interrupt is non-zero.

waiting_interrupt

Optional attribute; read/write access; type: integer. If an interrupt is requested, but it cannot be immediately handled because interrupts are masked.

xcr0

Optional attribute; read/write access; type: integer. Extended control register 0 (XCR0).

xmm

Optional attribute; read/write access; type: [[ii]*]. ((xmm_0_low, xmm_0_high), ..., (xmm_n_low, xmm_n_high)). Each list represents one xmm register. The high quad word (bits 64-127) is in xmmi_high and the low quad word (bits 0-63) is in xmmi_low.

ymmu

Optional attribute; read/write access; type: [[ii]*]. ((ymmu0_low, ymm0_high), ..., (ymmu15_low, ymmu15_high)). Each list represents the two upper quad words of an ymm register. register. The high quad word (bits 192-255) is in ymmi_high and the low quad word (bits 128-191) is in ymmi_low.

Class Attributes

architecture

Pseudo class attribute; read-only access; type: string. Implemented architecture (x86-64)

physical_bits

Pseudo class attribute; read-only access; type: integer. Number of physical address bits.

Command List

Commands defined by interface x86
break-vmread, break-vmwrite, trace-vmread, trace-vmwrite, unbreak-vmread, unbreak-vmwrite, untrace-vmread, untrace-vmwrite
Commands
aprof-viewsmanipulate list of selected address profiling views
break-processor-resetbreak on processor reset
break-segregbreak on control register updates
infoprint information about the object
memory-configurationprint memory configuration
msrsprint MSRs
pregs-fpuprint the x87 registers
pregs-sseprint the sse registers
print-acpi-tablesprint ACPI tables
print-gdtprint GDT
print-idtprint IDT
print-mp-tablesprint MP tables
print-tssprint TSS
print-vmcsprint VMCS
print-vmx-capprint VMX capabilities of CPU
statusprint status of the object
tablewalkaddress translation tablewalk
trace-segregtrace segment register updates
unbreak-processor-resetstop breaking on processor reset
unbreak-segregbreak on control register updates
untrace-segregtrace segment register updates
wait-for-processor-resetwait for a processor reset

x86_reset_signal_conv 5 Interfaces