1/*===-- X86DisassemblerDecoder.c - Disassembler decoder ------------*- C -*-===* 2 * 3 * The LLVM Compiler Infrastructure 4 * 5 * This file is distributed under the University of Illinois Open Source 6 * License. See LICENSE.TXT for details. 7 * 8 *===----------------------------------------------------------------------===* --- 1051 unchanged lines hidden (view full) --- 1060 insn->sibScale = 8; 1061 break; 1062 } 1063 1064 base = baseFromSIB(insn->sib) | (bFromREX(insn->rexPrefix) << 3); 1065 1066 switch (base) { 1067 case 0x5: |
1068 case 0xd: |
1069 switch (modFromModRM(insn->modRM)) { 1070 case 0x0: 1071 insn->eaDisplacement = EA_DISP_32; 1072 insn->sibBase = SIB_BASE_NONE; 1073 break; 1074 case 0x1: 1075 insn->eaDisplacement = EA_DISP_8; |
1076 insn->sibBase = (SIBBase)(sibBaseBase + base); |
1077 break; 1078 case 0x2: 1079 insn->eaDisplacement = EA_DISP_32; |
1080 insn->sibBase = (SIBBase)(sibBaseBase + base); |
1081 break; 1082 case 0x3: 1083 debug("Cannot have Mod = 0b11 and a SIB byte"); 1084 return -1; 1085 } 1086 break; 1087 default: 1088 insn->sibBase = (SIBBase)(sibBaseBase + base); --- 660 unchanged lines hidden --- |