Changeset 105738 in vbox
- Timestamp:
- Aug 19, 2024 6:10:56 PM (6 weeks ago)
- Location:
- trunk
- Files:
-
- 4 edited
-
include/VBox/dis-armv8.h (modified) (2 diffs)
-
include/VBox/disopcode-armv8.h (modified) (1 diff)
-
src/VBox/Disassembler/DisasmCore-armv8.cpp (modified) (2 diffs)
-
src/VBox/Disassembler/DisasmFormatArmV8.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/dis-armv8.h
r105737 r105738 42 42 #include <VBox/types.h> 43 43 #include <VBox/disopcode-armv8.h> 44 #include <iprt/armv8.h>45 44 #include <iprt/assert.h> 46 45 … … 90 89 { 91 90 /** Condition flag for the instruction - kArmv8InstrCond_Al if not conditional instruction. */ 92 ARMV8INSTRCONDenmCond;91 DISARMV8INSTRCOND enmCond; 93 92 /** Internal: Pointer to the instruction class table. */ 94 93 PCDISARMV8INSNCLASS pInsnClass; -
trunk/include/VBox/disopcode-armv8.h
r99323 r105738 521 521 522 522 523 /** Armv8 Condition codes. */ 524 typedef enum DISARMV8INSTRCOND 525 { 526 kDisArmv8InstrCond_Eq = 0, /**< 0 - Equal - Zero set. */ 527 kDisArmv8InstrCond_Ne, /**< 1 - Not equal - Zero clear. */ 528 529 kDisArmv8InstrCond_Cs, /**< 2 - Carry set (also known as 'HS'). */ 530 kDisArmv8InstrCond_Hs = kDisArmv8InstrCond_Cs, /**< 2 - Unsigned higher or same. */ 531 kDisArmv8InstrCond_Cc, /**< 3 - Carry clear (also known as 'LO'). */ 532 kDisArmv8InstrCond_Lo = kDisArmv8InstrCond_Cc, /**< 3 - Unsigned lower. */ 533 534 kDisArmv8InstrCond_Mi, /**< 4 - Negative result (minus). */ 535 kDisArmv8InstrCond_Pl, /**< 5 - Positive or zero result (plus). */ 536 537 kDisArmv8InstrCond_Vs, /**< 6 - Overflow set. */ 538 kDisArmv8InstrCond_Vc, /**< 7 - Overflow clear. */ 539 540 kDisArmv8InstrCond_Hi, /**< 8 - Unsigned higher. */ 541 kDisArmv8InstrCond_Ls, /**< 9 - Unsigned lower or same. */ 542 543 kDisArmv8InstrCond_Ge, /**< a - Signed greater or equal. */ 544 kDisArmv8InstrCond_Lt, /**< b - Signed less than. */ 545 546 kDisArmv8InstrCond_Gt, /**< c - Signed greater than. */ 547 kDisArmv8InstrCond_Le, /**< d - Signed less or equal. */ 548 549 kDisArmv8InstrCond_Al, /**< e - Condition is always true. */ 550 kDisArmv8InstrCond_Al1 /**< f - Condition is always true. */ 551 } DISARMV8INSTRCOND; 552 553 523 554 /** @defgroup grp_dis_opparam_armv8 Opcode parameters (DISOPCODE::fParam1, 524 555 * DISOPCODE::fParam2, DISOPCODE::fParam3) -
trunk/src/VBox/Disassembler/DisasmCore-armv8.cpp
r105736 r105738 274 274 { 275 275 RT_NOREF(pInsnClass, pParam, pf64Bit); 276 pDis->armv8.enmCond = ( ARMV8INSTRCOND)disArmV8ExtractBitVecFromInsn(u32Insn, pInsnParm->idxBitStart, pInsnParm->cBits);276 pDis->armv8.enmCond = (DISARMV8INSTRCOND)disArmV8ExtractBitVecFromInsn(u32Insn, pInsnParm->idxBitStart, pInsnParm->cBits); 277 277 return VINF_SUCCESS; 278 278 } … … 341 341 pDis->aParams[3].armv8.fParam = pOp->Opc.fParam4; 342 342 pDis->armv8.pInsnClass = pInsnClass; 343 pDis->armv8.enmCond = k Armv8InstrCond_Al;343 pDis->armv8.enmCond = kDisArmv8InstrCond_Al; 344 344 345 345 pDis->pCurInstr = &pOp->Opc; -
trunk/src/VBox/Disassembler/DisasmFormatArmV8.cpp
r105736 r105738 55 55 "x16", "x17", "x18", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "x28", "x29", "x30", "xzr" 56 56 }; 57 static const char g_aszArmV8Cond[16][ 4] =57 static const char g_aszArmV8Cond[16][3] = 58 58 { 59 59 "eq", "ne", "cs", "cc", "mi", "pl", "vs", "vc", "hi", "ls", "ge", "lt", "gt", "le", "al", "al" … … 589 589 590 590 /* Add any conditionals. */ 591 if (pDis->armv8.enmCond != k Armv8InstrCond_Al)591 if (pDis->armv8.enmCond != kDisArmv8InstrCond_Al) 592 592 { 593 593 PUT_C('.'); … … 616 616 ? &pDis->aParams[pInsnParam->idxParam] 617 617 : NULL; 618 if (i > 0) 618 if ( pParam 619 && pInsnParam->idxParam > 0) 619 620 PUT_C(','); 620 621 PUT_C(' '); /** @todo Make the indenting configurable. */
Note:
See TracChangeset
for help on using the changeset viewer.

