xref: /csrg-svn/sys/i386/include/reg.h (revision 63359)
141059Swilliam /*-
2*63359Sbostic  * Copyright (c) 1990, 1993
3*63359Sbostic  *	The Regents of the University of California.  All rights reserved.
441059Swilliam  *
541059Swilliam  * This code is derived from software contributed to Berkeley by
641059Swilliam  * William Jolitz.
741059Swilliam  *
846006Swilliam  * %sccs.include.redist.c%
941059Swilliam  *
10*63359Sbostic  *	@(#)reg.h	8.1 (Berkeley) 06/11/93
1141059Swilliam  */
1241059Swilliam 
1340466Sbill /*
1440466Sbill  * Location of the users' stored
1541059Swilliam  * registers within appropriate frame of 'trap' and 'syscall', relative to
1641059Swilliam  * base of stack frame.
1741059Swilliam  * Normal usage is u.u_ar0[XX] in kernel.
1840466Sbill  */
1940466Sbill 
2041059Swilliam /* When referenced during a trap/exception, registers are at these offsets */
2140466Sbill 
2241059Swilliam #define	tES	(0)
2341059Swilliam #define	tDS	(1)
2441059Swilliam #define	tEDI	(2)
2541059Swilliam #define	tESI	(3)
2641059Swilliam #define	tEBP	(4)
2741059Swilliam 
2841059Swilliam #define	tEBX	(6)
2941059Swilliam #define	tEDX	(7)
3041059Swilliam #define	tECX	(8)
3141059Swilliam #define	tEAX	(9)
3241059Swilliam 
3341059Swilliam #define	tEIP	(12)
3441059Swilliam #define	tCS	(13)
3541059Swilliam #define	tEFLAGS	(14)
3641059Swilliam #define	tESP	(15)
3741059Swilliam #define	tSS	(16)
3841059Swilliam 
3941059Swilliam /* During a system call, registers are at these offsets instead of above. */
4041059Swilliam 
4141059Swilliam #define	sEDI	(0)
4241059Swilliam #define	sESI	(1)
4341059Swilliam #define	sEBP	(2)
4441059Swilliam 
4541059Swilliam #define	sEBX	(4)
4641059Swilliam #define	sEDX	(5)
4741059Swilliam #define	sECX	(6)
4841059Swilliam #define	sEAX	(7)
4941059Swilliam #define	sEFLAGS	(8)
5041059Swilliam #define	sEIP	(9)
5141059Swilliam #define	sCS	(10)
5241059Swilliam #define	sESP	(11)
5341059Swilliam #define	sSS	(12)
5441059Swilliam 
5545964Swilliam #define	PC	sEIP
5645642Sbill #define	SP	sESP
5745642Sbill #define	PS	sEFLAGS
5845642Sbill #define	R0	sEDX
5945642Sbill #define	R1	sECX
6041059Swilliam /*
6141059Swilliam  * Registers accessible to ptrace(2) syscall for debugger
6241059Swilliam  */
6340466Sbill #ifdef IPCREG
6441059Swilliam #define	NIPCREG 14
6540466Sbill int ipcreg[NIPCREG] =
6641059Swilliam   { tES,tDS,tEDI,tESI,tEBP,tEBX,tEDX,tECX,tEAX,tEIP,tCS,tEFLAGS,tESP,tSS };
6740466Sbill #endif
68