A load instruction of of the form v1 = *s.(f1...f_k) The field selectors are optional and only generated if ALLOW_OFFSETS enabled. More...
#include <Load.h>
Public Member Functions | |
| Load (Variable *v1, Symbol *v2, int offset, string name, il::node *original, int line) | |
| virtual string | to_string () const |
| virtual string | to_string (bool pretty_print) const |
| virtual Variable * | get_lhs () |
| virtual void | set_lhs (Variable *v) |
| Symbol * | get_rhs () |
| int | get_offset () |
| string & | get_field_name () |
| virtual bool | is_removable () |
Friends | |
| class | boost::serialization::access |
A load instruction of of the form v1 = *s.(f1...f_k) The field selectors are optional and only generated if ALLOW_OFFSETS enabled.
The offset represents the aggregate offset of the field selectors. Note: In C, constants can be dereferenced, e.g., for DMA, thus, v2 is a symbol rather than a variable.
| bool sail::Load::is_removable | ( | ) | [virtual] |
An instruction is removable if it's not present in the original source code, but introduced in the translation from the high-level language to the low-level language. For instance, if **x is an expression used in the original code, the low-level language will introduce a temporary t=*x; such instructions are "removable" for printing purposes.
Implements sail::Instruction.
1.6.3