github.com/ice-blockchain/go/src@v0.0.0-20240403114104-1564d284e521/runtime/defs_plan9_amd64.go (about) 1 // Copyright 2014 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 ax uint64 11 bx uint64 12 cx uint64 13 dx uint64 14 si uint64 15 di uint64 16 bp uint64 17 r8 uint64 18 r9 uint64 19 r10 uint64 20 r11 uint64 21 r12 uint64 22 r13 uint64 23 r14 uint64 24 r15 uint64 25 26 ds uint16 27 es uint16 28 fs uint16 29 gs uint16 30 31 _type uint64 32 error uint64 /* error code (or zero) */ 33 ip uint64 /* pc */ 34 cs uint64 /* old context */ 35 flags uint64 /* old flags */ 36 sp uint64 /* sp */ 37 ss uint64 /* old stack segment */ 38 } 39 40 type sigctxt struct { 41 u *ureg 42 } 43 44 //go:nosplit 45 //go:nowritebarrierrec 46 func (c *sigctxt) pc() uintptr { return uintptr(c.u.ip) } 47 48 func (c *sigctxt) sp() uintptr { return uintptr(c.u.sp) } 49 func (c *sigctxt) lr() uintptr { return uintptr(0) } 50 51 func (c *sigctxt) setpc(x uintptr) { c.u.ip = uint64(x) } 52 func (c *sigctxt) setsp(x uintptr) { c.u.sp = uint64(x) } 53 func (c *sigctxt) setlr(x uintptr) {} 54 55 func (c *sigctxt) savelr(x uintptr) {} 56 57 func dumpregs(u *ureg) { 58 print("ax ", hex(u.ax), "\n") 59 print("bx ", hex(u.bx), "\n") 60 print("cx ", hex(u.cx), "\n") 61 print("dx ", hex(u.dx), "\n") 62 print("di ", hex(u.di), "\n") 63 print("si ", hex(u.si), "\n") 64 print("bp ", hex(u.bp), "\n") 65 print("sp ", hex(u.sp), "\n") 66 print("r8 ", hex(u.r8), "\n") 67 print("r9 ", hex(u.r9), "\n") 68 print("r10 ", hex(u.r10), "\n") 69 print("r11 ", hex(u.r11), "\n") 70 print("r12 ", hex(u.r12), "\n") 71 print("r13 ", hex(u.r13), "\n") 72 print("r14 ", hex(u.r14), "\n") 73 print("r15 ", hex(u.r15), "\n") 74 print("ip ", hex(u.ip), "\n") 75 print("flags ", hex(u.flags), "\n") 76 print("cs ", hex(u.cs), "\n") 77 print("fs ", hex(u.fs), "\n") 78 print("gs ", hex(u.gs), "\n") 79 } 80 81 func sigpanictramp()