VirtualBox

Ignore:
Timestamp:
Oct 29, 2024 1:09:50 PM (3 months ago)
Author:
vboxsync
Message:

Disassembler: Decode load/store memory tags instructions, bugref:10394

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Disassembler/DisasmCore-armv8.cpp

    r106768 r106770  
    114114static FNDISPARSEARMV8 disArmV8ParseSf;
    115115static FNDISPARSEARMV8 disArmV8ParseImmX16;
     116static FNDISPARSEARMV8 disArmV8ParseSImmTags;
    116117static FNDISPARSEARMV8 disArmV8ParseLdrPacImm;
    117118static FNDISPARSEARMV8 disArmV8ParseLdrPacW;
     
    175176    disArmV8ParseSf,
    176177    disArmV8ParseImmX16,
     178    disArmV8ParseSImmTags,
    177179    disArmV8ParseLdrPacImm,
    178180    disArmV8ParseLdrPacW
     
    10391041
    10401042
     1043static int disArmV8ParseSImmTags(PDISSTATE pDis, uint32_t u32Insn, PCDISARMV8OPCODE pOp, PCDISARMV8INSNCLASS pInsnClass, PDISOPPARAM pParam, PCDISARMV8INSNPARAM pInsnParm, bool *pf64Bit)
     1044{
     1045    RT_NOREF(pDis, pOp, pInsnClass, pf64Bit);
     1046
     1047    AssertReturn(pInsnParm->cBits <= 9, VERR_INTERNAL_ERROR_2);
     1048    Assert(pParam->armv8.enmType != kDisArmv8OpParmNone);
     1049
     1050    pParam->armv8.cb = sizeof(int16_t);
     1051    pParam->armv8.u.offBase = disArmV8ExtractBitVecFromInsnSignExtend(u32Insn, pInsnParm->idxBitStart, pInsnParm->cBits) << 4;
     1052    return VINF_SUCCESS;
     1053}
     1054
     1055
    10411056static int disArmV8ParseLdrPacImm(PDISSTATE pDis, uint32_t u32Insn, PCDISARMV8OPCODE pOp, PCDISARMV8INSNCLASS pInsnClass, PDISOPPARAM pParam, PCDISARMV8INSNPARAM pInsnParm, bool *pf64Bit)
    10421057{
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette