github.com/aloncn/graphics-go@v0.0.1/src/runtime/defs_plan9_amd64.go (about)

     1  package runtime
     2  
     3  const _PAGESIZE = 0x1000
     4  
     5  type ureg struct {
     6  	ax  uint64
     7  	bx  uint64
     8  	cx  uint64
     9  	dx  uint64
    10  	si  uint64
    11  	di  uint64
    12  	bp  uint64
    13  	r8  uint64
    14  	r9  uint64
    15  	r10 uint64
    16  	r11 uint64
    17  	r12 uint64
    18  	r13 uint64
    19  	r14 uint64
    20  	r15 uint64
    21  
    22  	ds uint16
    23  	es uint16
    24  	fs uint16
    25  	gs uint16
    26  
    27  	_type uint64
    28  	error uint64 /* error code (or zero) */
    29  	ip    uint64 /* pc */
    30  	cs    uint64 /* old context */
    31  	flags uint64 /* old flags */
    32  	sp    uint64 /* sp */
    33  	ss    uint64 /* old stack segment */
    34  }
    35  
    36  type sigctxt struct {
    37  	u *ureg
    38  }
    39  
    40  func (c *sigctxt) pc() uintptr { return uintptr(c.u.ip) }
    41  func (c *sigctxt) sp() uintptr { return uintptr(c.u.sp) }
    42  
    43  func (c *sigctxt) setpc(x uintptr) { c.u.ip = uint64(x) }
    44  func (c *sigctxt) setsp(x uintptr) { c.u.sp = uint64(x) }
    45  
    46  func dumpregs(u *ureg) {
    47  	print("ax    ", hex(u.ax), "\n")
    48  	print("bx    ", hex(u.bx), "\n")
    49  	print("cx    ", hex(u.cx), "\n")
    50  	print("dx    ", hex(u.dx), "\n")
    51  	print("di    ", hex(u.di), "\n")
    52  	print("si    ", hex(u.si), "\n")
    53  	print("bp    ", hex(u.bp), "\n")
    54  	print("sp    ", hex(u.sp), "\n")
    55  	print("r8    ", hex(u.r8), "\n")
    56  	print("r9    ", hex(u.r9), "\n")
    57  	print("r10   ", hex(u.r10), "\n")
    58  	print("r11   ", hex(u.r11), "\n")
    59  	print("r12   ", hex(u.r12), "\n")
    60  	print("r13   ", hex(u.r13), "\n")
    61  	print("r14   ", hex(u.r14), "\n")
    62  	print("r15   ", hex(u.r15), "\n")
    63  	print("ip    ", hex(u.ip), "\n")
    64  	print("flags ", hex(u.flags), "\n")
    65  	print("cs    ", hex(u.cs), "\n")
    66  	print("fs    ", hex(u.fs), "\n")
    67  	print("gs    ", hex(u.gs), "\n")
    68  }