x86: fold SReg{2,3}

They're the only exception to there generally being no mix of register
kinds possible in an insn operand template, and there being two bits per
operand for their representation is also quite wasteful, considering the
low number of uses.  Fold both bits and deal with the little bit of
fallout.

Also take the liberty and drop dead code trying to set REX_B: No segment
register has RegRex set on it.

Additionally I was quite surprised that PUSH/POP with the permitted
segment registers is not covered by the test cases.  Add the missing
pieces.
This commit is contained in:
Jan Beulich
2019-07-16 09:30:29 +02:00
parent 206e6c58a7
commit 21df382b91
15 changed files with 13780 additions and 24056 deletions

View File

@ -46,6 +46,7 @@
#define MOV_AX_DISP32 0xa0
#define POP_SEG_SHORT 0x07
#define POP_SEG386_SHORT 0xfa1
#define JUMP_PC_RELATIVE 0xeb
#define INT_OPCODE 0xcd
#define INT3_OPCODE 0xcc