microprobe.target.isa.operand.InstructionAddressRelativeOperand¶
-
class
InstructionAddressRelativeOperand(name, descr, maxdispl, mindispl, shift, except_range, relative)[source]¶ Bases:
microprobe.target.isa.operand.OperandClass to represent a relative instruction address operand.
Relative instruction address operands are used for immediates operands used to compute relative distance between the current instruction and the target. Examples are : branch relative, or load address relative.
-
__init__(name, descr, maxdispl, mindispl, shift, except_range, relative)[source]¶ Create a InstructionAddressRelativeOperand object.
Parameters: - name (
str) – Operand name - descr (
str) – Operand description - maxdispl (:
int) – Maximum displacement allowed - mindispl (:
int) – Minimum displacement allowed - shift (:
int) – Number of shifted bits - except_range (
listoftuple()withint) – list of forbidden ranges for displacement. Ranges are represented using (lower_bound, upper_bound)
Return type: - name (
Methods
__init__(name, descr, maxdispl, mindispl, …)Create a InstructionAddressRelativeOperand object. access(dummy)param dummy: check(value)param value: codification(value)param value: copy()random_value()Return a random possible value for the operand. representation(value)param value: set_valid_values(values)param values: values()Return the possible value of the operand. Attributes
address_absoluteOperand is for generating absolute addresses ( bool).address_baseOperand is the base register for an address ( bool).address_immediateOperand is an immediate of an address ( bool).address_indexOperand is the index register for an address ( bool).address_relativeOperand is for generating relative addresses ( bool).constantOperand is constant ( bool).descriptionOperand description ( str).floatOperand is float ( bool).immediateOperand is immediate ( bool).nameOperand name ( str).shiftvectorOperand is vector ( bool).
-
shift¶
-