LLVM: include/llvm/MC/MCDisassembler/MCSymbolizer.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#ifndef LLVM_MC_MCDISASSEMBLER_MCSYMBOLIZER_H

16#define LLVM_MC_MCDISASSEMBLER_MCSYMBOLIZER_H

17

21#include

22#include

23#include

24

25namespace llvm {

26

30

31

32

33

34

35

36

37

38

39

41protected:

43 std::unique_ptr RelInfo;

44

45public:

46

50

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

74

75

76

77

81

82

83

84

85

86

87

88

89

90

92};

93

94}

95

96#endif

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

Context object for machine code objects.

Instances of this class represent a single low-level machine instruction.

MCSymbolizer(MCContext &Ctx, std::unique_ptr< MCRelocationInfo > RelInfo)

Construct an MCSymbolizer, taking ownership of RelInfo.

Definition MCSymbolizer.h:47

std::unique_ptr< MCRelocationInfo > RelInfo

Definition MCSymbolizer.h:43

MCSymbolizer & operator=(const MCSymbolizer &)=delete

virtual void tryAddingPcLoadReferenceComment(raw_ostream &cStream, int64_t Value, uint64_t Address)=0

Try to add a comment on the PC-relative load.

MCSymbolizer(const MCSymbolizer &)=delete

virtual bool tryAddingSymbolicOperand(MCInst &Inst, raw_ostream &cStream, int64_t Value, uint64_t Address, bool IsBranch, uint64_t Offset, uint64_t OpSize, uint64_t InstSize)=0

Try to add a symbolic operand instead of Value to the MCInst.

MCContext & Ctx

Definition MCSymbolizer.h:42

virtual ArrayRef< uint64_t > getReferencedAddresses() const

Get the MCSymbolizer's list of addresses that were referenced by symbolizable operands but not resolv...

Definition MCSymbolizer.h:91

LLVM Value Representation.

This class implements an extremely fast bulk output stream that can only output to a stream.

This is an optimization pass for GlobalISel generic memory operations.

OutputIt move(R &&Range, OutputIt Out)

Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.

Implement std::hash so that hash_code can be used in STL containers.