コード例 #1
0
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"))
コード例 #2
0
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)