...
Run Format

Source file src/runtime/defs_plan9_arm.go

Documentation: runtime

  // Copyright 2015 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  package runtime
  
  const _PAGESIZE = 0x1000
  
  type ureg struct {
  	r0   uint32 /* general registers */
  	r1   uint32 /* ... */
  	r2   uint32 /* ... */
  	r3   uint32 /* ... */
  	r4   uint32 /* ... */
  	r5   uint32 /* ... */
  	r6   uint32 /* ... */
  	r7   uint32 /* ... */
  	r8   uint32 /* ... */
  	r9   uint32 /* ... */
  	r10  uint32 /* ... */
  	r11  uint32 /* ... */
  	r12  uint32 /* ... */
  	sp   uint32
  	link uint32 /* ... */
  	trap uint32 /* trap type */
  	psr  uint32
  	pc   uint32 /* interrupted addr */
  }
  
  type sigctxt struct {
  	u *ureg
  }
  
  //go:nosplit
  //go:nowritebarrierrec
  func (c *sigctxt) pc() uintptr { return uintptr(c.u.pc) }
  
  func (c *sigctxt) sp() uintptr { return uintptr(c.u.sp) }
  func (c *sigctxt) lr() uintptr { return uintptr(c.u.link) }
  
  func (c *sigctxt) setpc(x uintptr)  { c.u.pc = uint32(x) }
  func (c *sigctxt) setsp(x uintptr)  { c.u.sp = uint32(x) }
  func (c *sigctxt) setlr(x uintptr)  { c.u.link = uint32(x) }
  func (c *sigctxt) savelr(x uintptr) { c.u.r0 = uint32(x) }
  
  func dumpregs(u *ureg) {
  	print("r0    ", hex(u.r0), "\n")
  	print("r1    ", hex(u.r1), "\n")
  	print("r2    ", hex(u.r2), "\n")
  	print("r3    ", hex(u.r3), "\n")
  	print("r4    ", hex(u.r4), "\n")
  	print("r5    ", hex(u.r5), "\n")
  	print("r6    ", hex(u.r6), "\n")
  	print("r7    ", hex(u.r7), "\n")
  	print("r8    ", hex(u.r8), "\n")
  	print("r9    ", hex(u.r9), "\n")
  	print("r10   ", hex(u.r10), "\n")
  	print("r11   ", hex(u.r11), "\n")
  	print("r12   ", hex(u.r12), "\n")
  	print("sp    ", hex(u.sp), "\n")
  	print("link  ", hex(u.link), "\n")
  	print("pc    ", hex(u.pc), "\n")
  	print("psr   ", hex(u.psr), "\n")
  }
  
  func sigpanictramp()
  

View as plain text