github.com/x04/go/src@v0.0.0-20200202162449-3d481ceb3525/runtime/defs_plan9_arm.go (about)

     1  // Copyright 2015 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package runtime
     6  
     7  const _PAGESIZE = 0x1000
     8  
     9  type ureg struct {
    10  	r0	uint32	/* general registers */
    11  	r1	uint32	/* ... */
    12  	r2	uint32	/* ... */
    13  	r3	uint32	/* ... */
    14  	r4	uint32	/* ... */
    15  	r5	uint32	/* ... */
    16  	r6	uint32	/* ... */
    17  	r7	uint32	/* ... */
    18  	r8	uint32	/* ... */
    19  	r9	uint32	/* ... */
    20  	r10	uint32	/* ... */
    21  	r11	uint32	/* ... */
    22  	r12	uint32	/* ... */
    23  	sp	uint32
    24  	link	uint32	/* ... */
    25  	trap	uint32	/* trap type */
    26  	psr	uint32
    27  	pc	uint32	/* interrupted addr */
    28  }
    29  
    30  type sigctxt struct {
    31  	u *ureg
    32  }
    33  
    34  //go:nosplit
    35  //go:nowritebarrierrec
    36  func (c *sigctxt) pc() uintptr	{ return uintptr(c.u.pc) }
    37  
    38  func (c *sigctxt) sp() uintptr	{ return uintptr(c.u.sp) }
    39  func (c *sigctxt) lr() uintptr	{ return uintptr(c.u.link) }
    40  
    41  func (c *sigctxt) setpc(x uintptr)	{ c.u.pc = uint32(x) }
    42  func (c *sigctxt) setsp(x uintptr)	{ c.u.sp = uint32(x) }
    43  func (c *sigctxt) setlr(x uintptr)	{ c.u.link = uint32(x) }
    44  func (c *sigctxt) savelr(x uintptr)	{ c.u.r0 = uint32(x) }
    45  
    46  func dumpregs(u *ureg) {
    47  	print("r0    ", hex(u.r0), "\n")
    48  	print("r1    ", hex(u.r1), "\n")
    49  	print("r2    ", hex(u.r2), "\n")
    50  	print("r3    ", hex(u.r3), "\n")
    51  	print("r4    ", hex(u.r4), "\n")
    52  	print("r5    ", hex(u.r5), "\n")
    53  	print("r6    ", hex(u.r6), "\n")
    54  	print("r7    ", hex(u.r7), "\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("sp    ", hex(u.sp), "\n")
    61  	print("link  ", hex(u.link), "\n")
    62  	print("pc    ", hex(u.pc), "\n")
    63  	print("psr   ", hex(u.psr), "\n")
    64  }
    65  
    66  func sigpanictramp()