microprobe.target.isa.operand.InstructionAddressRelativeOperand¶
-
class
InstructionAddressRelativeOperand
(name, descr, maxdispl, mindispl, shift, except_range, relative)[source]¶ Bases:
microprobe.target.isa.operand.Operand
Class 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 (
list
oftuple()
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_absolute
Operand is for generating absolute addresses ( bool
).address_base
Operand is the base register for an address ( bool
).address_immediate
Operand is an immediate of an address ( bool
).address_index
Operand is the index register for an address ( bool
).address_relative
Operand is for generating relative addresses ( bool
).constant
Operand is constant ( bool
).description
Operand description ( str
).float
Operand is float ( bool
).immediate
Operand is immediate ( bool
).name
Operand name ( str
).shift
vector
Operand is vector ( bool
).
-
shift
¶
-