// Copyright 2014 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 { di uint32 /* general registers */ si uint32 /* ... */ bp uint32 /* ... */ nsp uint32 bx uint32 /* ... */ dx uint32 /* ... */ cx uint32 /* ... */ ax uint32 /* ... */ gs uint32 /* data segments */ fs uint32 /* ... */ es uint32 /* ... */ ds uint32 /* ... */ trap uint32 /* trap _type */ ecode uint32 /* error code (or zero) */ pc uint32 /* pc */ cs uint32 /* old context */ flags uint32 /* old flags */ sp uint32 ss uint32 /* old stack segment */ } 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(0) } 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) {} func (c *sigctxt) savelr(x uintptr) {} func dumpregs(u *ureg) { print("ax ", hex(u.ax), "\n") print("bx ", hex(u.bx), "\n") print("cx ", hex(u.cx), "\n") print("dx ", hex(u.dx), "\n") print("di ", hex(u.di), "\n") print("si ", hex(u.si), "\n") print("bp ", hex(u.bp), "\n") print("sp ", hex(u.sp), "\n") print("pc ", hex(u.pc), "\n") print("flags ", hex(u.flags), "\n") print("cs ", hex(u.cs), "\n") print("fs ", hex(u.fs), "\n") print("gs ", hex(u.gs), "\n") } func sigpanictramp()