// Copyright 2013 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

import (
	
	
)

type sigctxt struct {
	info *siginfo
	ctxt unsafe.Pointer
}

//go:nosplit
//go:nowritebarrierrec
func ( *sigctxt) () *sigcontext {
	return (*sigcontext)(unsafe.Pointer(&(*ucontext)(.ctxt).uc_mcontext))
}

func ( *sigctxt) () uint64 { return .regs().rax }
func ( *sigctxt) () uint64 { return .regs().rbx }
func ( *sigctxt) () uint64 { return .regs().rcx }
func ( *sigctxt) () uint64 { return .regs().rdx }
func ( *sigctxt) () uint64 { return .regs().rdi }
func ( *sigctxt) () uint64 { return .regs().rsi }
func ( *sigctxt) () uint64 { return .regs().rbp }
func ( *sigctxt) () uint64 { return .regs().rsp }
func ( *sigctxt) () uint64  { return .regs().r8 }
func ( *sigctxt) () uint64  { return .regs().r9 }
func ( *sigctxt) () uint64 { return .regs().r10 }
func ( *sigctxt) () uint64 { return .regs().r11 }
func ( *sigctxt) () uint64 { return .regs().r12 }
func ( *sigctxt) () uint64 { return .regs().r13 }
func ( *sigctxt) () uint64 { return .regs().r14 }
func ( *sigctxt) () uint64 { return .regs().r15 }

//go:nosplit
//go:nowritebarrierrec
func ( *sigctxt) () uint64 { return .regs().rip }

func ( *sigctxt) () uint64  { return .regs().eflags }
func ( *sigctxt) () uint64      { return uint64(.regs().cs) }
func ( *sigctxt) () uint64      { return uint64(.regs().fs) }
func ( *sigctxt) () uint64      { return uint64(.regs().gs) }
func ( *sigctxt) () uint64 { return uint64(.info.si_code) }
func ( *sigctxt) () uint64 { return .info.si_addr }

func ( *sigctxt) ( uint64)     { .regs().rip =  }
func ( *sigctxt) ( uint64)     { .regs().rsp =  }
func ( *sigctxt) ( uint64) { .info.si_code = int32() }
func ( *sigctxt) ( uint64) {
	*(*uintptr)(add(unsafe.Pointer(.info), 2*goarch.PtrSize)) = uintptr()
}