2014-11-11 15:07:37 -07:00
|
|
|
package runtime
|
|
|
|
|
2014-11-21 11:39:01 -07:00
|
|
|
const _PAGESIZE = 0x1000
|
|
|
|
|
2014-11-11 15:07:37 -07:00
|
|
|
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 */
|
|
|
|
}
|
2014-12-18 06:05:44 -07:00
|
|
|
|
|
|
|
type sigctxt struct {
|
|
|
|
u *ureg
|
|
|
|
}
|
|
|
|
|
2016-10-04 08:11:55 -06:00
|
|
|
//go:nosplit
|
|
|
|
//go:nowritebarrierrec
|
2014-12-18 06:05:44 -07:00
|
|
|
func (c *sigctxt) pc() uintptr { return uintptr(c.u.pc) }
|
2016-10-04 08:11:55 -06:00
|
|
|
|
2014-12-18 06:05:44 -07:00
|
|
|
func (c *sigctxt) sp() uintptr { return uintptr(c.u.sp) }
|
2016-01-27 11:43:36 -07:00
|
|
|
func (c *sigctxt) lr() uintptr { return uintptr(0) }
|
2014-12-18 06:05:44 -07:00
|
|
|
|
|
|
|
func (c *sigctxt) setpc(x uintptr) { c.u.pc = uint32(x) }
|
|
|
|
func (c *sigctxt) setsp(x uintptr) { c.u.sp = uint32(x) }
|
2016-01-27 11:43:36 -07:00
|
|
|
func (c *sigctxt) setlr(x uintptr) {}
|
|
|
|
|
|
|
|
func (c *sigctxt) savelr(x uintptr) {}
|
2014-12-18 06:05:44 -07:00
|
|
|
|
|
|
|
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")
|
|
|
|
}
|
2016-01-27 11:43:36 -07:00
|
|
|
|
|
|
|
func sigpanictramp() {}
|