def pregs_all_cmd(cp): if not cp: cp, _ = get_cpu(kind = ('sparc_v9', 'a SPARC processor')) i0 = SIM_get_register_number(cp, "i0") l0 = SIM_get_register_number(cp, "l0") o0 = SIM_get_register_number(cp, "o0") print "Processor %s:" % cp.name # global registers fn = sim_commands.get_obj_funcs(cp)['global_set_names'] global_banks = fn(cp) print " %%g (%-9s) %%g (%-9s) %%g (%-9s) %%g (%-9s)" % tuple(global_banks) for i in range(1,8): print "%d 0x%016x 0x%016x 0x%016x 0x%016x" % ( i, cp.iface.sparc_v9.read_global_register(cp, 0, i), cp.iface.sparc_v9.read_global_register(cp, 1, i), cp.iface.sparc_v9.read_global_register(cp, 2, i), cp.iface.sparc_v9.read_global_register(cp, 3, i)) # register windows print " %i %l %o" for i in range(SIM_get_attribute(cp, "num-windows")): print "Window %d:" % i for j in range(8): print "%d 0x%016x 0x%016x 0x%016x" % (j, cp.iface.sparc_v9.read_window_register(cp, i, i0 + j), cp.iface.sparc_v9.read_window_register(cp, i, l0 + j), cp.iface.sparc_v9.read_window_register(cp, i, o0 + j)) print print_control_registers(cp, 1) print "\n N Z V C N Z V C" print " %ccr =", ccr = sparc_read_int_register(cp, "ccr"); for i in range(0, 8): print "%d" % ((ccr >> (7 - i)) & 1), print "%29s = 0x%016x\n" % ("", ccr); # the pstate bits are cpu class specific fn = sim_commands.get_obj_funcs(cp)['print_pstate_bits'] fn(sparc_read_int_register(cp, "pstate"))
def local_pregs(obj, all, print_control_regs = 1): if all: pregs_all_cmd(obj) return print "Processor %s:" % obj.name fn = sim_commands.get_obj_funcs(obj)['global_set_names'] global_bank = fn(obj)[obj.current_globals] print " %%g %-8s %%o %%l %%i" % global_bank for i in range(8): print "%d %s %s %s %s" % (i, "0x%016x" % sparc_read_int_register(obj, "g"+`i`), "0x%016x" % sparc_read_int_register(obj, "o"+`i`), "0x%016x" % sparc_read_int_register(obj, "l"+`i`), "0x%016x" % sparc_read_int_register(obj, "i"+`i`)) print if print_control_regs: print_control_registers(obj, 0)