1*7c478bd9Sstevel@tonic-gate /*
2*7c478bd9Sstevel@tonic-gate  * CDDL HEADER START
3*7c478bd9Sstevel@tonic-gate  *
4*7c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*7c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
6*7c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
7*7c478bd9Sstevel@tonic-gate  * with the License.
8*7c478bd9Sstevel@tonic-gate  *
9*7c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*7c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
11*7c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
12*7c478bd9Sstevel@tonic-gate  * and limitations under the License.
13*7c478bd9Sstevel@tonic-gate  *
14*7c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
15*7c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*7c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
17*7c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
18*7c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
19*7c478bd9Sstevel@tonic-gate  *
20*7c478bd9Sstevel@tonic-gate  * CDDL HEADER END
21*7c478bd9Sstevel@tonic-gate  */
22*7c478bd9Sstevel@tonic-gate /*
23*7c478bd9Sstevel@tonic-gate  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
24*7c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
25*7c478bd9Sstevel@tonic-gate  */
26*7c478bd9Sstevel@tonic-gate 
27*7c478bd9Sstevel@tonic-gate /*
28*7c478bd9Sstevel@tonic-gate  * DWARF register numbers for AMD64
29*7c478bd9Sstevel@tonic-gate  */
30*7c478bd9Sstevel@tonic-gate 
31*7c478bd9Sstevel@tonic-gate #ifndef _REG_NUM_H
32*7c478bd9Sstevel@tonic-gate #define	_REG_NUM_H
33*7c478bd9Sstevel@tonic-gate 
34*7c478bd9Sstevel@tonic-gate /*
35*7c478bd9Sstevel@tonic-gate  * Dwarf register numbers for AMD64
36*7c478bd9Sstevel@tonic-gate  * Only those with trailing comments are actually tracked
37*7c478bd9Sstevel@tonic-gate  */
38*7c478bd9Sstevel@tonic-gate #define	GPR_RAX	0
39*7c478bd9Sstevel@tonic-gate #define	GPR_RDX	1
40*7c478bd9Sstevel@tonic-gate #define	GPR_RCX	2
41*7c478bd9Sstevel@tonic-gate #define	GPR_RBX	3	/* callee saves */
42*7c478bd9Sstevel@tonic-gate #define	GPR_RSI	4
43*7c478bd9Sstevel@tonic-gate #define	GPR_RDI	5
44*7c478bd9Sstevel@tonic-gate #define	FP_RBP	6	/* callee saves (optional frame pointer) */
45*7c478bd9Sstevel@tonic-gate #define	SP_RSP	7	/* stack pointer */
46*7c478bd9Sstevel@tonic-gate #define	EIR_R8	8
47*7c478bd9Sstevel@tonic-gate #define	EIR_R9	9
48*7c478bd9Sstevel@tonic-gate #define	EIR_R10	10
49*7c478bd9Sstevel@tonic-gate #define	EIR_R11	11
50*7c478bd9Sstevel@tonic-gate #define	EIR_R12	12	/* callee saves */
51*7c478bd9Sstevel@tonic-gate #define	EIR_R13	13	/* callee saves */
52*7c478bd9Sstevel@tonic-gate #define	EIR_R14	14	/* callee saves */
53*7c478bd9Sstevel@tonic-gate #define	EIR_R15	15	/* callee saves */
54*7c478bd9Sstevel@tonic-gate #define	RET_ADD	16	/* virtual register - really caller's PC */
55*7c478bd9Sstevel@tonic-gate #define	CF_ADDR	17	/* virtual register - tracks frame location */
56*7c478bd9Sstevel@tonic-gate 
57*7c478bd9Sstevel@tonic-gate #if 0
58*7c478bd9Sstevel@tonic-gate #define	SSE_XMM0	17
59*7c478bd9Sstevel@tonic-gate #define	SSE_XMM1	18
60*7c478bd9Sstevel@tonic-gate #define	SSE_XMM2	19
61*7c478bd9Sstevel@tonic-gate #define	SSE_XMM3	20
62*7c478bd9Sstevel@tonic-gate #define	SSE_XMM4	21
63*7c478bd9Sstevel@tonic-gate #define	SSE_XMM5	22
64*7c478bd9Sstevel@tonic-gate #define	SSE_XMM6	23
65*7c478bd9Sstevel@tonic-gate #define	SSE_XMM7	24
66*7c478bd9Sstevel@tonic-gate #define	SSE_XMM8	25
67*7c478bd9Sstevel@tonic-gate #define	SSE_XMM9	26
68*7c478bd9Sstevel@tonic-gate #define	SSE_XMM10	27
69*7c478bd9Sstevel@tonic-gate #define	SSE_XMM11	28
70*7c478bd9Sstevel@tonic-gate #define	SSE_XMM12	29
71*7c478bd9Sstevel@tonic-gate #define	SSE_XMM13	30
72*7c478bd9Sstevel@tonic-gate #define	SSE_XMM14	31
73*7c478bd9Sstevel@tonic-gate #define	SSE_XMM15	32
74*7c478bd9Sstevel@tonic-gate #define	FP_ST0		33
75*7c478bd9Sstevel@tonic-gate #define	FP_ST1		34
76*7c478bd9Sstevel@tonic-gate #define	FP_ST2		35
77*7c478bd9Sstevel@tonic-gate #define	FP_ST3		36
78*7c478bd9Sstevel@tonic-gate #define	FP_ST4		37
79*7c478bd9Sstevel@tonic-gate #define	FP_ST5		38
80*7c478bd9Sstevel@tonic-gate #define	FP_ST6		39
81*7c478bd9Sstevel@tonic-gate #define	FP_ST7		40
82*7c478bd9Sstevel@tonic-gate #define	MMX_MMN0	41
83*7c478bd9Sstevel@tonic-gate #define	MMX_MMN1	42
84*7c478bd9Sstevel@tonic-gate #define	MMX_MMN2	43
85*7c478bd9Sstevel@tonic-gate #define	MMX_MMN3	44
86*7c478bd9Sstevel@tonic-gate #define	MMX_MMN4	45
87*7c478bd9Sstevel@tonic-gate #define	MMX_MMN5	46
88*7c478bd9Sstevel@tonic-gate #define	MMX_MMN6	47
89*7c478bd9Sstevel@tonic-gate #define	MMX_MMN7	48
90*7c478bd9Sstevel@tonic-gate #endif
91*7c478bd9Sstevel@tonic-gate #define	BAD_REG		49
92*7c478bd9Sstevel@tonic-gate 
93*7c478bd9Sstevel@tonic-gate /*
94*7c478bd9Sstevel@tonic-gate  * register arrays used in support routines contain 16 8-byte slots
95*7c478bd9Sstevel@tonic-gate  * indexed from GPR_RAX to EIR_R15
96*7c478bd9Sstevel@tonic-gate  *
97*7c478bd9Sstevel@tonic-gate  *	%rax	0	0	<undefined>
98*7c478bd9Sstevel@tonic-gate  *	%rdx	1	8	handler parameter
99*7c478bd9Sstevel@tonic-gate  *	%rcx	2	16	handler parameter
100*7c478bd9Sstevel@tonic-gate  *	%rbx	3	24	preserved
101*7c478bd9Sstevel@tonic-gate  *	%rsi	4	32	handler parameter
102*7c478bd9Sstevel@tonic-gate  *	%rdi	5	40	handler parameter
103*7c478bd9Sstevel@tonic-gate  *	%rbp	6	48	frame pointer
104*7c478bd9Sstevel@tonic-gate  *	%rsp	7	56	stack pointer
105*7c478bd9Sstevel@tonic-gate  *	%r8	8	64	<undefined>
106*7c478bd9Sstevel@tonic-gate  *	%r9	9	72	<undefined>
107*7c478bd9Sstevel@tonic-gate  *	%r10	10	80	<undefined>
108*7c478bd9Sstevel@tonic-gate  *	%r11	11	88	<undefined>
109*7c478bd9Sstevel@tonic-gate  *	%r12	12	96	preserved
110*7c478bd9Sstevel@tonic-gate  *	%r13	13	104	preserved
111*7c478bd9Sstevel@tonic-gate  *	%r14	14	112	preserved
112*7c478bd9Sstevel@tonic-gate  *	%r15	15	120	preserved
113*7c478bd9Sstevel@tonic-gate  *
114*7c478bd9Sstevel@tonic-gate  * register state arrays used to hold propagation information
115*7c478bd9Sstevel@tonic-gate  * have two additional elements (indices RET_ADD and CF_ADDR)
116*7c478bd9Sstevel@tonic-gate  */
117*7c478bd9Sstevel@tonic-gate 
118*7c478bd9Sstevel@tonic-gate #endif	/* _REG_NUM_H */
119