libyasm
|
A value. More...
#include <coretype.h>
Data Fields | |
yasm_expr * | abs |
The absolute portion of the value. More... | |
yasm_symrec * | rel |
The relative portion of the value. More... | |
yasm_symrec * | wrt |
What the relative portion is in reference to. More... | |
unsigned int | seg_of: 1 |
If the segment of the relative portion should be used, not the relative portion itself. More... | |
unsigned int | rshift: 7 |
If the relative portion of the value should be shifted right (supported only by a few object formats). More... | |
unsigned int | curpos_rel: 1 |
Indicates the relative portion of the value should be relocated relative to the current assembly position rather than relative to the section start. More... | |
unsigned int | ip_rel: 1 |
Indicates that curpos_rel was set due to IP-relative relocation; in some objfmt/arch combinations (e.g. More... | |
unsigned int | jump_target: 1 |
Indicates the value is a jump target address (rather than a simple data address). More... | |
unsigned int | section_rel: 1 |
Indicates the relative portion of the value should be relocated relative to its own section start rather than relative to the section start of the bytecode containing this value. More... | |
unsigned int | no_warn: 1 |
Indicates overflow warnings have been disabled for this value. More... | |
unsigned int | sign: 1 |
Sign of the value. More... | |
unsigned int | size: 8 |
Size of the value, in bits. More... | |
A value.
May be absolute or relative. Outside the parser, yasm_expr should only be used for absolute exprs. Anything that could contain a relocatable value should use this structure instead.
Definition at line 121 of file coretype.h.
yasm_expr* yasm_value::abs |
The absolute portion of the value.
May contain differences between symrecs but not standalone symrecs. May be NULL if there is no absolute portion (e.g. the absolute portion is 0).
Definition at line 126 of file coretype.h.
unsigned int yasm_value::curpos_rel |
Indicates the relative portion of the value should be relocated relative to the current assembly position rather than relative to the section start.
"Current assembly position" here refers to the starting address of the bytecode containing this value. Boolean.
Definition at line 152 of file coretype.h.
unsigned int yasm_value::ip_rel |
Indicates that curpos_rel was set due to IP-relative relocation; in some objfmt/arch combinations (e.g.
win64/x86-amd64) this info is needed to generate special relocations.
Definition at line 158 of file coretype.h.
unsigned int yasm_value::jump_target |
Indicates the value is a jump target address (rather than a simple data address).
In some objfmt/arch combinations (e.g. macho/amd64) this info is needed to generate special relocations.
Definition at line 164 of file coretype.h.
unsigned int yasm_value::no_warn |
Indicates overflow warnings have been disabled for this value.
Definition at line 175 of file coretype.h.
yasm_symrec* yasm_value::rel |
The relative portion of the value.
This is the portion that may need to generate a relocation. May be NULL if no relative portion.
Definition at line 131 of file coretype.h.
unsigned int yasm_value::rshift |
If the relative portion of the value should be shifted right (supported only by a few object formats).
If just the absolute portion should be shifted, that must be in the abs expr, not here!
Definition at line 145 of file coretype.h.
unsigned int yasm_value::section_rel |
Indicates the relative portion of the value should be relocated relative to its own section start rather than relative to the section start of the bytecode containing this value.
E.g. the value resulting from the relative portion should be the offset from its section start. Boolean.
Definition at line 172 of file coretype.h.
unsigned int yasm_value::seg_of |
If the segment of the relative portion should be used, not the relative portion itself.
Boolean.
Definition at line 139 of file coretype.h.
unsigned int yasm_value::sign |
Sign of the value.
Nonzero if the final value should be treated as signed, 0 if it should be treated as signed.
Definition at line 180 of file coretype.h.
unsigned int yasm_value::size |
Size of the value, in bits.
Definition at line 183 of file coretype.h.
yasm_symrec* yasm_value::wrt |
What the relative portion is in reference to.
NULL if the default.
Definition at line 134 of file coretype.h.