mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-25 13:35:10 +00:00
Remove unneeded fields from disassembler internal instruction format.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191731 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f99f63db79
commit
8568510d46
@ -592,24 +592,18 @@ static int readOpcode(struct InternalInstruction* insn) {
|
||||
case 0:
|
||||
break;
|
||||
case VEX_LOB_0F:
|
||||
insn->twoByteEscape = 0x0f;
|
||||
insn->opcodeType = TWOBYTE;
|
||||
return consumeByte(insn, &insn->opcode);
|
||||
case VEX_LOB_0F38:
|
||||
insn->twoByteEscape = 0x0f;
|
||||
insn->threeByteEscape = 0x38;
|
||||
insn->opcodeType = THREEBYTE_38;
|
||||
return consumeByte(insn, &insn->opcode);
|
||||
case VEX_LOB_0F3A:
|
||||
insn->twoByteEscape = 0x0f;
|
||||
insn->threeByteEscape = 0x3a;
|
||||
insn->opcodeType = THREEBYTE_3A;
|
||||
return consumeByte(insn, &insn->opcode);
|
||||
}
|
||||
}
|
||||
else if (insn->vexSize == 2)
|
||||
{
|
||||
insn->twoByteEscape = 0x0f;
|
||||
insn->opcodeType = TWOBYTE;
|
||||
return consumeByte(insn, &insn->opcode);
|
||||
}
|
||||
@ -620,16 +614,12 @@ static int readOpcode(struct InternalInstruction* insn) {
|
||||
if (current == 0x0f) {
|
||||
dbgprintf(insn, "Found a two-byte escape prefix (0x%hhx)", current);
|
||||
|
||||
insn->twoByteEscape = current;
|
||||
|
||||
if (consumeByte(insn, ¤t))
|
||||
return -1;
|
||||
|
||||
if (current == 0x38) {
|
||||
dbgprintf(insn, "Found a three-byte escape prefix (0x%hhx)", current);
|
||||
|
||||
insn->threeByteEscape = current;
|
||||
|
||||
if (consumeByte(insn, ¤t))
|
||||
return -1;
|
||||
|
||||
@ -637,8 +627,6 @@ static int readOpcode(struct InternalInstruction* insn) {
|
||||
} else if (current == 0x3a) {
|
||||
dbgprintf(insn, "Found a three-byte escape prefix (0x%hhx)", current);
|
||||
|
||||
insn->threeByteEscape = current;
|
||||
|
||||
if (consumeByte(insn, ¤t))
|
||||
return -1;
|
||||
|
||||
@ -646,8 +634,6 @@ static int readOpcode(struct InternalInstruction* insn) {
|
||||
} else if (current == 0xa6) {
|
||||
dbgprintf(insn, "Found a three-byte escape prefix (0x%hhx)", current);
|
||||
|
||||
insn->threeByteEscape = current;
|
||||
|
||||
if (consumeByte(insn, ¤t))
|
||||
return -1;
|
||||
|
||||
@ -655,8 +641,6 @@ static int readOpcode(struct InternalInstruction* insn) {
|
||||
} else if (current == 0xa7) {
|
||||
dbgprintf(insn, "Found a three-byte escape prefix (0x%hhx)", current);
|
||||
|
||||
insn->threeByteEscape = current;
|
||||
|
||||
if (consumeByte(insn, ¤t))
|
||||
return -1;
|
||||
|
||||
|
@ -541,10 +541,6 @@ struct InternalInstruction {
|
||||
|
||||
/* opcode state */
|
||||
|
||||
/* The value of the two-byte escape prefix (usually 0x0f) */
|
||||
uint8_t twoByteEscape;
|
||||
/* The value of the three-byte escape prefix (usually 0x38 or 0x3a) */
|
||||
uint8_t threeByteEscape;
|
||||
/* The last byte of the opcode, not counting any ModR/M extension */
|
||||
uint8_t opcode;
|
||||
/* The ModR/M byte of the instruction, if it is an opcode extension */
|
||||
|
Loading…
Reference in New Issue
Block a user