Class: RLTK::CG::Bindings::OpInfoSymbol1
- Defined in:
- lib/rltk/cg/generated_bindings.rb
Overview
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.
Fields:
- :present
-
(Integer) 1 if this symbol is present
- :name
-
(String) symbol name if not NULL
- :value
-
(Integer) symbol value if name is NULL