Changeset 107030 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Nov 18, 2024 2:58:29 PM (3 months ago)
- svn:sync-xref-src-repo-rev:
- 165974
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/DBGF.cpp
r106061 r107030 1586 1586 static DBGFSTEPINSTRTYPE dbgfStepGetCurInstrType(PVM pVM, PVMCPU pVCpu) 1587 1587 { 1588 #ifdef VBOX_VMM_TARGET_ARMV8 1589 /* 1590 * Read the instruction, this ASSUMES running in A64 mode. 1591 */ 1592 size_t cbRead = 0; 1593 uint32_t u32Insn = 0; 1594 int rc = PGMR3DbgReadGCPtr(pVM, &u32Insn, CPUMGetGuestFlatPC(pVCpu), u32Insn, 0 /*fFlags*/, &cbRead); 1595 if (RT_SUCCESS(rc)) 1596 { 1597 /* 1598 * Do minimal parsing. No real need to involve the disassembler here. 1599 */ 1600 if ( (u32Insn & 0xfffffc1f) == 0xd65f0000 /* RET */ 1601 || (u32Insn & 0xfffffc1f) == 0xd65f081f /* RETAA */ 1602 || (u32Insn & 0xfffffc1f) == 0xd65f0c1f /* RETAB */ 1603 || (u32Insn & 0xffffffff) == 0xd69f03e0 /* ERET */ 1604 || (u32Insn & 0xffffffff) == 0xd69f0bff /* ERETAA */ 1605 || (u32Insn & 0xffffffff) == 0xd69f0fff /* ERETAB */) 1606 return DBGFSTEPINSTRTYPE_RET; 1607 else if ( (u32Insn & 0xfffffc1f) == 0xd63f0000 /* BLR */ 1608 || (u32Insn & 0xfffffc1f) == 0xd63f081f /* BLRAAZ */ 1609 || (u32Insn & 0xfffffc1f) == 0xd63f0c1f /* BLRABZ */ 1610 || (u32Insn & 0xfffffc00) == 0xd73f0800 /* BLRAA */ 1611 || (u32Insn & 0xfffffc00) == 0xd73f0c00 /* BLRAB */ 1612 || (u32Insn & 0xfc000000) == 0x14000000 /* BL */ 1613 || (u32Insn & 0xffe0001f) == 0xd4000001 /* SVC */ 1614 || (u32Insn & 0xffe0001f) == 0xd4000002 /* HVC */ 1615 || (u32Insn & 0xffe0001f) == 0xd4000003 /* SMC */ 1616 || (u32Insn & 0xffe0001f) == 0xd4200000 /* BRK */ 1617 || (u32Insn & 0xffe0001f) == 0xd4400000 /* HLT */) 1618 return DBGFSTEPINSTRTYPE_CALL; 1619 else 1620 return DBGFSTEPINSTRTYPE_OTHER; 1621 } 1622 #else 1588 1623 /* 1589 1624 * Read the instruction. … … 1659 1694 } 1660 1695 } 1696 #endif 1661 1697 1662 1698 return DBGFSTEPINSTRTYPE_INVALID;
Note:
See TracChangeset
for help on using the changeset viewer.