X86DisassemblerDecoder.c (263508) | X86DisassemblerDecoder.c (266715) |
---|---|
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: | 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: |
|
1068 switch (modFromModRM(insn->modRM)) { 1069 case 0x0: 1070 insn->eaDisplacement = EA_DISP_32; 1071 insn->sibBase = SIB_BASE_NONE; 1072 break; 1073 case 0x1: 1074 insn->eaDisplacement = EA_DISP_8; | 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; |
1075 insn->sibBase = (insn->addressSize == 4 ? 1076 SIB_BASE_EBP : SIB_BASE_RBP); | 1076 insn->sibBase = (SIBBase)(sibBaseBase + base); |
1077 break; 1078 case 0x2: 1079 insn->eaDisplacement = EA_DISP_32; | 1077 break; 1078 case 0x2: 1079 insn->eaDisplacement = EA_DISP_32; |
1080 insn->sibBase = (insn->addressSize == 4 ? 1081 SIB_BASE_EBP : SIB_BASE_RBP); | 1080 insn->sibBase = (SIBBase)(sibBaseBase + base); |
1082 break; 1083 case 0x3: 1084 debug("Cannot have Mod = 0b11 and a SIB byte"); 1085 return -1; 1086 } 1087 break; 1088 default: 1089 insn->sibBase = (SIBBase)(sibBaseBase + base); --- 660 unchanged lines hidden --- | 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 --- |