@@ -692,6 +692,42 @@ static DecodeStatus DecodeLazyLoadStoreMul(MCInst &Inst, unsigned Insn,
692692 uint64_t Address,
693693 const MCDisassembler *Decoder);
694694
695+ // / tryAddingSymbolicOperand - trys to add a symbolic operand in place of the
696+ // / immediate Value in the MCInst. The immediate Value has had any PC
697+ // / adjustment made by the caller. If the instruction is a branch instruction
698+ // / then isBranch is true, else false. If the getOpInfo() function was set as
699+ // / part of the setupForSymbolicDisassembly() call then that function is called
700+ // / to get any symbolic information at the Address for this instruction. If
701+ // / that returns non-zero then the symbolic information it returns is used to
702+ // / create an MCExpr and that is added as an operand to the MCInst. If
703+ // / getOpInfo() returns zero and isBranch is true then a symbol look up for
704+ // / Value is done and if a symbol is found an MCExpr is created with that, else
705+ // / an MCExpr with Value is created. This function returns true if it adds an
706+ // / operand to the MCInst and false otherwise.
707+ static bool tryAddingSymbolicOperand (uint64_t Address, int32_t Value,
708+ bool isBranch, uint64_t InstSize,
709+ MCInst &MI,
710+ const MCDisassembler *Decoder) {
711+ // FIXME: Does it make sense for value to be negative?
712+ return Decoder->tryAddingSymbolicOperand (MI, (uint32_t )Value, Address,
713+ isBranch, /* Offset=*/ 0 , /* OpSize=*/ 0 ,
714+ InstSize);
715+ }
716+
717+ // / tryAddingPcLoadReferenceComment - trys to add a comment as to what is being
718+ // / referenced by a load instruction with the base register that is the Pc.
719+ // / These can often be values in a literal pool near the Address of the
720+ // / instruction. The Address of the instruction and its immediate Value are
721+ // / used as a possible literal pool entry. The SymbolLookUp call back will
722+ // / return the name of a symbol referenced by the literal pool's entry if
723+ // / the referenced address is that of a symbol. Or it will return a pointer to
724+ // / a literal 'C' string if the referenced address of the literal pool's entry
725+ // / is an address into a section with 'C' string literals.
726+ static void tryAddingPcLoadReferenceComment (uint64_t Address, int Value,
727+ const MCDisassembler *Decoder) {
728+ Decoder->tryAddingPcLoadReferenceComment (Value, Address);
729+ }
730+
695731#include " ARMGenDisassemblerTables.inc"
696732
697733static MCDisassembler *createARMDisassembler (const Target &T,
@@ -832,42 +868,6 @@ DecodeStatus ARMDisassembler::getARMInstruction(MCInst &MI, uint64_t &Size,
832868 return MCDisassembler::Fail;
833869}
834870
835- // / tryAddingSymbolicOperand - trys to add a symbolic operand in place of the
836- // / immediate Value in the MCInst. The immediate Value has had any PC
837- // / adjustment made by the caller. If the instruction is a branch instruction
838- // / then isBranch is true, else false. If the getOpInfo() function was set as
839- // / part of the setupForSymbolicDisassembly() call then that function is called
840- // / to get any symbolic information at the Address for this instruction. If
841- // / that returns non-zero then the symbolic information it returns is used to
842- // / create an MCExpr and that is added as an operand to the MCInst. If
843- // / getOpInfo() returns zero and isBranch is true then a symbol look up for
844- // / Value is done and if a symbol is found an MCExpr is created with that, else
845- // / an MCExpr with Value is created. This function returns true if it adds an
846- // / operand to the MCInst and false otherwise.
847- static bool tryAddingSymbolicOperand (uint64_t Address, int32_t Value,
848- bool isBranch, uint64_t InstSize,
849- MCInst &MI,
850- const MCDisassembler *Decoder) {
851- // FIXME: Does it make sense for value to be negative?
852- return Decoder->tryAddingSymbolicOperand (MI, (uint32_t )Value, Address,
853- isBranch, /* Offset=*/ 0 , /* OpSize=*/ 0 ,
854- InstSize);
855- }
856-
857- // / tryAddingPcLoadReferenceComment - trys to add a comment as to what is being
858- // / referenced by a load instruction with the base register that is the Pc.
859- // / These can often be values in a literal pool near the Address of the
860- // / instruction. The Address of the instruction and its immediate Value are
861- // / used as a possible literal pool entry. The SymbolLookUp call back will
862- // / return the name of a symbol referenced by the literal pool's entry if
863- // / the referenced address is that of a symbol. Or it will return a pointer to
864- // / a literal 'C' string if the referenced address of the literal pool's entry
865- // / is an address into a section with 'C' string literals.
866- static void tryAddingPcLoadReferenceComment (uint64_t Address, int Value,
867- const MCDisassembler *Decoder) {
868- Decoder->tryAddingPcLoadReferenceComment (Value, Address);
869- }
870-
871871// Thumb1 instructions don't have explicit S bits. Rather, they
872872// implicitly set CPSR. Since it's not represented in the encoding, the
873873// auto-generated decoder won't inject the CPSR operand. We need to fix
0 commit comments