#include <machine/ctlreg.h>
#include <machine/asm.h>
#ifdef _LP64
ENTRY_NOPROFILE(print_dtlb)
save %sp, -CC64FSZ, %sp
sll %i0, 3, %l3
or %l3, %i1, %l3
mov %i1, %l1
clr %l2
1:
ldxa [%l1] ASI_DMMU_TLB_TAG, %o2
membar #Sync
mov %l2, %o1
ldxa [%l1] ASI_DMMU_TLB_DATA, %o3
membar #Sync
inc %l2
set 2f, %o0
call _C_LABEL(db_printf)
inc 8, %l1
ldxa [%l1] ASI_DMMU_TLB_TAG, %o2
membar #Sync
mov %l2, %o1
ldxa [%l1] ASI_DMMU_TLB_DATA, %o3
membar #Sync
inc %l2
set 3f, %o0
call _C_LABEL(db_printf)
inc 8, %l1
cmp %l1, %l3
bl 1b
inc 8, %l0
ret
restore
ENTRY_NOPROFILE(print_itlb)
save %sp, -CC64FSZ, %sp
sll %i0, 3, %l3
or %l3, %i1, %l3
mov %i1, %l1
clr %l2
1:
ldxa [%l1] ASI_IMMU_TLB_TAG, %o2
membar #Sync
mov %l2, %o1
ldxa [%l1] ASI_IMMU_TLB_DATA, %o3
membar #Sync
inc %l2
set 2f, %o0
call _C_LABEL(db_printf)
inc 8, %l1
ldxa [%l1] ASI_IMMU_TLB_TAG, %o2
membar #Sync
mov %l2, %o1
ldxa [%l1] ASI_IMMU_TLB_DATA, %o3
membar #Sync
inc %l2
set 3f, %o0
call _C_LABEL(db_printf)
inc 8, %l1
cmp %l1, %l3
bl 1b
inc 8, %l0
ret
restore
.data
2:
.asciz "%2d:%016lx %016lx "
3:
.asciz "%2d:%016lx %016lx\n"
.text
#else
ENTRY_NOPROFILE(print_dtlb)
save %sp, -CC64FSZ, %sp
sll %i0, 3, %l3
or %l3, %i1, %l3
mov %i1, %l1
clr %l2
1:
ldxa [%l1] ASI_DMMU_TLB_TAG, %o2
membar #Sync
srl %o2, 0, %o3
mov %l2, %o1
srax %o2, 32, %o2
ldxa [%l1] ASI_DMMU_TLB_DATA, %o4
membar #Sync
srl %o4, 0, %o5
inc %l2
srax %o4, 32, %o4
set 2f, %o0
call _C_LABEL(db_printf)
inc 8, %l1
ldxa [%l1] ASI_DMMU_TLB_TAG, %o2
membar #Sync
srl %o2, 0, %o3
mov %l2, %o1
srax %o2, 32, %o2
ldxa [%l1] ASI_DMMU_TLB_DATA, %o4
membar #Sync
srl %o4, 0, %o5
inc %l2
srax %o4, 32, %o4
set 3f, %o0
call _C_LABEL(db_printf)
inc 8, %l1
cmp %l1, %l3
bl 1b
inc 8, %l0
ret
restore
ENTRY_NOPROFILE(print_itlb)
save %sp, -CC64FSZ, %sp
sll %i0, 3, %l3
or %l3, %i1, %l3
mov %i1, %l1
clr %l2
1:
ldxa [%l1] ASI_IMMU_TLB_TAG, %o2
membar #Sync
srl %o2, 0, %o3
mov %l2, %o1
srax %o2, 32, %o2
ldxa [%l1] ASI_IMMU_TLB_DATA, %o4
membar #Sync
srl %o4, 0, %o5
inc %l2
srax %o4, 32, %o4
set 2f, %o0
call _C_LABEL(db_printf)
inc 8, %l1
ldxa [%l1] ASI_IMMU_TLB_TAG, %o2
membar #Sync
srl %o2, 0, %o3
mov %l2, %o1
srax %o2, 32, %o2
ldxa [%l1] ASI_IMMU_TLB_DATA, %o4
membar #Sync
srl %o4, 0, %o5
inc %l2
srax %o4, 32, %o4
set 3f, %o0
call _C_LABEL(db_printf)
inc 8, %l1
cmp %l1, %l3
bl 1b
inc 8, %l0
ret
restore
.data
2:
.asciz "%2d:%08x:%08x %08x:%08x "
3:
.asciz "%2d:%08x:%08x %08x:%08x\n"
.text
#endif