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
context_var
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 –