microprobe.target.isa.GenericISA

class GenericISA(name, descr, ins, regs, comparators, generators)[source]

Bases: microprobe.target.isa.ISA

Class to represent a generic Instruction Set Architecture (ISA).

__init__(name, descr, ins, regs, comparators, generators)[source]
Parameters:
  • name
  • descr
  • ins
  • regs
  • comparators
  • generators

Methods

__init__(name, descr, ins, regs, …)
param name:
add_to_register(register, value)
param register:
branch_to_itself()
branch_unconditional_relative(source, target)
param source:
compare_and_branch(val1, val2, cond, target, …)
param val1:
full_report()
get_context([variable, tmpl_path])
get_dat(**kwargs)
get_register_for_address_arithmetic(context)
param context:
get_register_for_float_arithmetic(context)
param context:
load(reg, address, context)
param reg:
load_float(reg, address, context)
param reg:
negate_register(reg, context)
param reg:
new_instruction(name)
param name:
nop()
normalize_asm(mnemonic, operands)
register_value_comparator(comp)
set_context([variable, tmpl_path])
set_register(reg, value, context)
param reg:
set_register_bits(register, value, mask, …)
param register:
set_register_to_address(reg, address, context)
param reg:
set_target(target)
param target:
store_decimal(address, length, value, context)
param address:
store_float(reg, address, context)
param reg:
store_integer(reg, address, length, context)
param reg:

Attributes

address_registers
control_registers
description
flag_registers
float_registers
instructions
name
registers
scratch_registers
scratch_var
target



name
description
address_registers
float_registers
flag_registers
instructions
scratch_var
registers
target
normalize_asm(mnemonic, operands)[source]
set_target(target)[source]
Parameters:target
new_instruction(name)[source]
Parameters:name
full_report()[source]
set_register(reg, value, context)[source]
Parameters:
  • reg
  • value
  • context
scratch_registers
control_registers
get_register_for_address_arithmetic(context)[source]
Parameters:context
get_register_for_float_arithmetic(context)[source]
Parameters:context
add_to_register(register, value)[source]
Parameters:
  • register
  • value
branch_unconditional_relative(source, target)[source]
Parameters:
  • source
  • target
branch_to_itself()[source]
get_dat(**kwargs)[source]
set_context(variable=None, tmpl_path=None)[source]
get_context(variable=None, tmpl_path=None)[source]
register_value_comparator(comp)[source]
compare_and_branch(val1, val2, cond, target, context)
Parameters:
  • val1
  • val2
  • cond
  • target
  • context
context_var
load(reg, address, context)
Parameters:
  • reg
  • address
  • context
load_float(reg, address, context)
Parameters:
  • reg
  • address
  • context
negate_register(reg, context)
Parameters:
  • reg
  • context
nop()
set_register_bits(register, value, mask, shift, context)
Parameters:
  • register
  • value
  • mask
  • shift
  • context
set_register_to_address(reg, address, context, force_absolute=False, force_relative=False)
Parameters:
  • reg
  • address
  • context
  • force_absolute – (Default value = False)
store_decimal(address, length, value, context)
Parameters:
  • address
  • length
  • value
  • context
store_float(reg, address, context)
Parameters:
  • reg
  • address
  • context
store_integer(reg, address, length, context)
Parameters:
  • reg
  • address
  • length
  • context