|  | // 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() {} |