LLVM  12.0.0git
LLVMOpInfoSymbol1 Struct Reference

The initial support in LLVM MC for the most general form of a relocatable expression is "AddSymbol - SubtractSymbol + Offset". More...

#include "llvm-c/DisassemblerTypes.h"

Collaboration diagram for LLVMOpInfoSymbol1:
[legend]

uint64_t Present

const charName

uint64_t Value

## Detailed Description

The initial support in LLVM MC for the most general form of a relocatable expression is "AddSymbol - SubtractSymbol + Offset".

For some Darwin targets this full form is encoded in the relocation information so that AddSymbol and SubtractSymbol can be link edited independent of each other. Many other platforms only allow a relocatable expression of the form AddSymbol + Offset to be encoded.

The LLVMOpInfoCallback() for the TagType value of 1 uses the struct LLVMOpInfo1. The value of the relocatable expression for the operand, including any PC adjustment, is passed in to the call back in the Value field. The symbolic information about the operand is returned using all the fields of the structure with the Offset of the relocatable expression returned in the Value field. It is possible that some symbols in the relocatable expression were assembly temporary symbols, for example "Ldata - LpicBase + constant", and only the Values of the symbols without symbol names are present in the relocation information. The VariantKind type is one of the Target specific #defines below and is used to print operands like "_foo@GOT", ":lower16:_foo", etc.

Definition at line 66 of file DisassemblerTypes.h.

## ◆ Name

 const char* LLVMOpInfoSymbol1::Name

Definition at line 68 of file DisassemblerTypes.h.

## ◆ Present

 uint64_t LLVMOpInfoSymbol1::Present

Definition at line 67 of file DisassemblerTypes.h.

## ◆ Value

 uint64_t LLVMOpInfoSymbol1::Value

Definition at line 69 of file DisassemblerTypes.h.

The documentation for this struct was generated from the following file: