LLVM  6.0.0svn
Public Attributes | List of all members
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/Disassembler.h"

Collaboration diagram for LLVMOpInfoSymbol1:
Collaboration graph
[legend]

Public Attributes

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 78 of file Disassembler.h.

Member Data Documentation

◆ Name

const char* LLVMOpInfoSymbol1::Name

◆ Present

uint64_t LLVMOpInfoSymbol1::Present

◆ Value

uint64_t LLVMOpInfoSymbol1::Value

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