xref: /freebsd/contrib/processor-trace/libipt/internal/include/pti-sib.h (revision 85f87cf491bec6f90948a85b10f5523ea24db9e3)
1*85f87cf4SRuslan Bukin /*
2*85f87cf4SRuslan Bukin  * Copyright (c) 2017-2019, Intel Corporation
3*85f87cf4SRuslan Bukin  *
4*85f87cf4SRuslan Bukin  * Redistribution and use in source and binary forms, with or without
5*85f87cf4SRuslan Bukin  * modification, are permitted provided that the following conditions are met:
6*85f87cf4SRuslan Bukin  *
7*85f87cf4SRuslan Bukin  *  * Redistributions of source code must retain the above copyright notice,
8*85f87cf4SRuslan Bukin  *    this list of conditions and the following disclaimer.
9*85f87cf4SRuslan Bukin  *  * Redistributions in binary form must reproduce the above copyright notice,
10*85f87cf4SRuslan Bukin  *    this list of conditions and the following disclaimer in the documentation
11*85f87cf4SRuslan Bukin  *    and/or other materials provided with the distribution.
12*85f87cf4SRuslan Bukin  *  * Neither the name of Intel Corporation nor the names of its contributors
13*85f87cf4SRuslan Bukin  *    may be used to endorse or promote products derived from this software
14*85f87cf4SRuslan Bukin  *    without specific prior written permission.
15*85f87cf4SRuslan Bukin  *
16*85f87cf4SRuslan Bukin  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17*85f87cf4SRuslan Bukin  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18*85f87cf4SRuslan Bukin  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19*85f87cf4SRuslan Bukin  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20*85f87cf4SRuslan Bukin  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21*85f87cf4SRuslan Bukin  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22*85f87cf4SRuslan Bukin  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23*85f87cf4SRuslan Bukin  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24*85f87cf4SRuslan Bukin  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25*85f87cf4SRuslan Bukin  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26*85f87cf4SRuslan Bukin  * POSSIBILITY OF SUCH DAMAGE.
27*85f87cf4SRuslan Bukin  */
28*85f87cf4SRuslan Bukin 
29*85f87cf4SRuslan Bukin #ifndef PTI_SIB_H
30*85f87cf4SRuslan Bukin #define PTI_SIB_H
31*85f87cf4SRuslan Bukin 
32*85f87cf4SRuslan Bukin #include <stdint.h>
33*85f87cf4SRuslan Bukin 
34*85f87cf4SRuslan Bukin 
35*85f87cf4SRuslan Bukin static const uint8_t has_sib[4][4][8] = {
36*85f87cf4SRuslan Bukin 	/* Effective Addressing Mode: ptem_unknown. */ {
37*85f87cf4SRuslan Bukin 		/* MOD: 0 */ {
38*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
39*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
40*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
41*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
42*85f87cf4SRuslan Bukin 			/* RM: 4 */	0,
43*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
44*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
45*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
46*85f87cf4SRuslan Bukin 		},
47*85f87cf4SRuslan Bukin 		/* MOD: 1 */ {
48*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
49*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
50*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
51*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
52*85f87cf4SRuslan Bukin 			/* RM: 4 */	0,
53*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
54*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
55*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
56*85f87cf4SRuslan Bukin 		},
57*85f87cf4SRuslan Bukin 		/* MOD: 2 */ {
58*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
59*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
60*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
61*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
62*85f87cf4SRuslan Bukin 			/* RM: 4 */	0,
63*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
64*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
65*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
66*85f87cf4SRuslan Bukin 		},
67*85f87cf4SRuslan Bukin 		/* MOD: 3 */ {
68*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
69*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
70*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
71*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
72*85f87cf4SRuslan Bukin 			/* RM: 4 */	0,
73*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
74*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
75*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
76*85f87cf4SRuslan Bukin 		}
77*85f87cf4SRuslan Bukin 	},
78*85f87cf4SRuslan Bukin 
79*85f87cf4SRuslan Bukin 	/* Effective Addressing Mode: ptem_16bit. */ {
80*85f87cf4SRuslan Bukin 		/* MOD: 0 */ {
81*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
82*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
83*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
84*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
85*85f87cf4SRuslan Bukin 			/* RM: 4 */	0,
86*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
87*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
88*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
89*85f87cf4SRuslan Bukin 		},
90*85f87cf4SRuslan Bukin 		/* MOD: 1 */ {
91*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
92*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
93*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
94*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
95*85f87cf4SRuslan Bukin 			/* RM: 4 */	0,
96*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
97*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
98*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
99*85f87cf4SRuslan Bukin 		},
100*85f87cf4SRuslan Bukin 		/* MOD: 2 */ {
101*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
102*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
103*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
104*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
105*85f87cf4SRuslan Bukin 			/* RM: 4 */	0,
106*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
107*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
108*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
109*85f87cf4SRuslan Bukin 		},
110*85f87cf4SRuslan Bukin 		/* MOD: 3 */ {
111*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
112*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
113*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
114*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
115*85f87cf4SRuslan Bukin 			/* RM: 4 */	0,
116*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
117*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
118*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
119*85f87cf4SRuslan Bukin 		}
120*85f87cf4SRuslan Bukin 	},
121*85f87cf4SRuslan Bukin 
122*85f87cf4SRuslan Bukin 	/* Effective Addressing Mode: ptem_32bit. */ {
123*85f87cf4SRuslan Bukin 		/* MOD: 0 */ {
124*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
125*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
126*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
127*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
128*85f87cf4SRuslan Bukin 			/* RM: 4 */	1,
129*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
130*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
131*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
132*85f87cf4SRuslan Bukin 		},
133*85f87cf4SRuslan Bukin 		/* MOD: 1 */ {
134*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
135*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
136*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
137*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
138*85f87cf4SRuslan Bukin 			/* RM: 4 */	1,
139*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
140*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
141*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
142*85f87cf4SRuslan Bukin 		},
143*85f87cf4SRuslan Bukin 		/* MOD: 2 */ {
144*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
145*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
146*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
147*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
148*85f87cf4SRuslan Bukin 			/* RM: 4 */	1,
149*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
150*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
151*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
152*85f87cf4SRuslan Bukin 		},
153*85f87cf4SRuslan Bukin 		/* MOD: 3 */ {
154*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
155*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
156*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
157*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
158*85f87cf4SRuslan Bukin 			/* RM: 4 */	0,
159*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
160*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
161*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
162*85f87cf4SRuslan Bukin 		}
163*85f87cf4SRuslan Bukin 	},
164*85f87cf4SRuslan Bukin 
165*85f87cf4SRuslan Bukin 	/* Effective Addressing Mode: ptem_64bit. */ {
166*85f87cf4SRuslan Bukin 		/* MOD: 0 */ {
167*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
168*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
169*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
170*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
171*85f87cf4SRuslan Bukin 			/* RM: 4 */	1,
172*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
173*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
174*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
175*85f87cf4SRuslan Bukin 		},
176*85f87cf4SRuslan Bukin 		/* MOD: 1 */ {
177*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
178*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
179*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
180*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
181*85f87cf4SRuslan Bukin 			/* RM: 4 */	1,
182*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
183*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
184*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
185*85f87cf4SRuslan Bukin 		},
186*85f87cf4SRuslan Bukin 		/* MOD: 2 */ {
187*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
188*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
189*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
190*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
191*85f87cf4SRuslan Bukin 			/* RM: 4 */	1,
192*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
193*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
194*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
195*85f87cf4SRuslan Bukin 		},
196*85f87cf4SRuslan Bukin 		/* MOD: 3 */ {
197*85f87cf4SRuslan Bukin 			/* RM: 0 */	0,
198*85f87cf4SRuslan Bukin 			/* RM: 1 */	0,
199*85f87cf4SRuslan Bukin 			/* RM: 2 */	0,
200*85f87cf4SRuslan Bukin 			/* RM: 3 */	0,
201*85f87cf4SRuslan Bukin 			/* RM: 4 */	0,
202*85f87cf4SRuslan Bukin 			/* RM: 5 */	0,
203*85f87cf4SRuslan Bukin 			/* RM: 6 */	0,
204*85f87cf4SRuslan Bukin 			/* RM: 7 */	0
205*85f87cf4SRuslan Bukin 		}
206*85f87cf4SRuslan Bukin 	}
207*85f87cf4SRuslan Bukin };
208*85f87cf4SRuslan Bukin 
209*85f87cf4SRuslan Bukin #endif /* PTI_SIB_H */
210