Changeset 106145 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Sep 25, 2024 6:43:43 AM (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/NEMR3Native-darwin-armv8.cpp
r106061 r106145 1375 1375 "Setting MPIDR_EL1 failed on vCPU %u: %#x (%Rrc)", idCpu, hrc, nemR3DarwinHvSts2Rc(hrc)); 1376 1376 1377 #if 0 /* Will triger an VM-exit if the guest hits a breakpoint, handy for debugging the MS bootloader. */ 1378 hrc != hv_vcpu_set_trap_debug_exceptions(pVCpu->nem.s.hVCpu, true); 1379 if (hrc != HV_SUCCESS) 1380 return VMSetError(pVM, VERR_NEM_VM_CREATE_FAILED, RT_SRC_POS, 1381 "Trapping debug exceptions on vCPU %u: %#x (%Rrc)", idCpu, hrc, nemR3DarwinHvSts2Rc(hrc)); 1382 #endif 1383 1377 1384 return VINF_SUCCESS; 1378 1385 } … … 1675 1682 u64Val = nemR3DarwinGetGReg(pVCpu, uReg); 1676 1683 rcStrict = PGMPhysWrite(pVM, GCPhysDataAbrt, &u64Val, cbAcc, PGMACCESSORIGIN_HM); 1677 Log4(("MmioExit/%u: %08RX64: WRITE %# xLB %u, %.*Rhxs -> rcStrict=%Rrc\n",1684 Log4(("MmioExit/%u: %08RX64: WRITE %#RGp LB %u, %.*Rhxs -> rcStrict=%Rrc\n", 1678 1685 pVCpu->idCpu, pVCpu->cpum.GstCtx.Pc.u64, GCPhysDataAbrt, cbAcc, cbAcc, 1679 1686 &u64Val, VBOXSTRICTRC_VAL(rcStrict) )); … … 1682 1689 { 1683 1690 rcStrict = PGMPhysRead(pVM, GCPhysDataAbrt, &u64Val, cbAcc, PGMACCESSORIGIN_HM); 1684 Log4(("MmioExit/%u: %08RX64: READ %# xLB %u -> %.*Rhxs rcStrict=%Rrc\n",1691 Log4(("MmioExit/%u: %08RX64: READ %#RGp LB %u -> %.*Rhxs rcStrict=%Rrc\n", 1685 1692 pVCpu->idCpu, pVCpu->cpum.GstCtx.Pc.u64, GCPhysDataAbrt, cbAcc, cbAcc, 1686 1693 &u64Val, VBOXSTRICTRC_VAL(rcStrict) )); … … 1898 1905 /* No need to halt if there is an interrupt pending already. */ 1899 1906 if (VMCPU_FF_IS_ANY_SET(pVCpu, (VMCPU_FF_INTERRUPT_IRQ | VMCPU_FF_INTERRUPT_FIQ))) 1907 { 1908 LogFlowFunc(("IRQ | FIQ set => VINF_SUCCESS\n")); 1909 pVCpu->cpum.GstCtx.Pc.u64 += fInsn32Bit ? sizeof(uint32_t) : sizeof(uint16_t); 1900 1910 return VINF_SUCCESS; 1911 } 1901 1912 1902 1913 /* Set the vTimer expiration in order to get out of the halt at the right point in time. */ … … 1908 1919 /* Check whether it expired and start executing guest code. */ 1909 1920 if (cTicksVTimer >= pVCpu->cpum.GstCtx.CntvCValEl0) 1921 { 1922 LogFlowFunc(("Guest timer expired (cTicksVTimer=%RU64 CntvCValEl0=%RU64) => VINF_SUCCESS\n", 1923 cTicksVTimer, pVCpu->cpum.GstCtx.CntvCValEl0)); 1924 pVCpu->cpum.GstCtx.Pc.u64 += fInsn32Bit ? sizeof(uint32_t) : sizeof(uint16_t); 1910 1925 return VINF_SUCCESS; 1926 } 1911 1927 1912 1928 uint64_t cTicksVTimerToExpire = pVCpu->cpum.GstCtx.CntvCValEl0 - cTicksVTimer; … … 1920 1936 */ 1921 1937 if (cNanoSecsVTimerToExpire < 2 * RT_NS_1MS) 1938 { 1939 LogFlowFunc(("Guest timer expiration < 2ms (cNanoSecsVTimerToExpire=%RU64) => VINF_SUCCESS\n", 1940 cNanoSecsVTimerToExpire)); 1941 pVCpu->cpum.GstCtx.Pc.u64 += fInsn32Bit ? sizeof(uint32_t) : sizeof(uint16_t); 1922 1942 return VINF_SUCCESS; 1943 } 1923 1944 1924 1945 LogFlowFunc(("Set vTimer activation to cNanoSecsVTimerToExpire=%#RX64 (CntvCValEl0=%#RX64, u64VTimerOff=%#RX64 cTicksVTimer=%#RX64 u64CntFrqHz=%#RX64)\n", … … 1929 1950 TMCpuSetVTimerNextActivation(pVCpu, UINT64_MAX); 1930 1951 1952 pVCpu->cpum.GstCtx.Pc.u64 += fInsn32Bit ? sizeof(uint32_t) : sizeof(uint16_t); 1931 1953 return VINF_EM_HALT; 1932 1954 }
Note:
See TracChangeset
for help on using the changeset viewer.