File tree Expand file tree Collapse file tree 2 files changed +13
-1
lines changed
deps/hypervisor/bfvmm/src/hve/arch/intel_x64 Expand file tree Collapse file tree 2 files changed +13
-1
lines changed Original file line number Diff line number Diff line change @@ -102,6 +102,10 @@ setup()
102
102
103
103
if (feature_information::ecx::xsave::is_enabled ()) {
104
104
g_cr4_reg |= ::intel_x64::cr4::osxsave::mask;
105
+ bfalert_info (0 , " --> vcpu::setup::osxsave on" );
106
+ }
107
+ else {
108
+ bfalert_info (0 , " --> vcpu::setup::osxsave off" );
105
109
}
106
110
107
111
if (extended_feature_flags::subleaf0::ebx::smep::is_enabled ()) {
@@ -1452,7 +1456,8 @@ void
1452
1456
vcpu::set_cr4 (uint64_t val) noexcept
1453
1457
{
1454
1458
vmcs_n::cr4_read_shadow::set (val);
1455
- vmcs_n::guest_cr4::set (val | m_global_state->ia32_vmx_cr4_fixed0 );
1459
+ // vmcs_n::guest_cr4::set(val | m_global_state->ia32_vmx_cr4_fixed0);
1460
+ vmcs_n::guest_cr4::set (val | m_global_state->ia32_vmx_cr4_fixed0 | ::intel_x64::cr4::osxsave::mask);
1456
1461
}
1457
1462
1458
1463
uint64_t
Original file line number Diff line number Diff line change @@ -253,6 +253,8 @@ control_register_handler::control_register_handler(
253
253
{
254
254
using namespace vmcs_n ;
255
255
256
+ bfalert_info (0 , " --> control_register_handler" );
257
+
256
258
vcpu->add_handler (
257
259
exit_reason::basic_exit_reason::control_register_accesses,
258
260
{&control_register_handler::handle, this }
@@ -333,6 +335,9 @@ control_register_handler::enable_wrcr4_exiting(
333
335
vmcs_n::value_type mask)
334
336
{
335
337
mask |= m_vcpu->global_state ()->ia32_vmx_cr4_fixed0 ;
338
+ mask |= ::intel_x64::cr4::osxsave::mask;
339
+
340
+ bfalert_nhex (0 , " control_register_handler::enable_wrcr4_exiting::mask " , mask);
336
341
vmcs_n::cr4_guest_host_mask::set (mask);
337
342
}
338
343
@@ -385,6 +390,8 @@ control_register_handler::execute_wrcr4(
385
390
emulate_rdgpr (vcpu);
386
391
vcpu->set_gr2 (vcpu->cr4 ());
387
392
vcpu->set_cr4 (vcpu->gr1 ());
393
+ bfalert_nhex (0 , " --> mov_to_cr -> execute_wrcr4 old " , vcpu->gr2 ());
394
+ bfalert_nhex (0 , " --> mov_to_cr -> execute_wrcr4 new " , vmcs_n::guest_cr4::get ());
388
395
}
389
396
390
397
// -----------------------------------------------------------------------------
You can’t perform that action at this time.
0 commit comments