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