Much of it seems fixed already; what's left to fix? The segment prefix
override? Does that mean we get to fix disassembly of '0x65 0xa4' while
we're at it? (Although we can't even *assemble* that one, I note.)
Any comments on the patches I posted on Monday to fix various 16-bit
disasm issues?
To fix it we need to change offset8/offset16/etc to have two suboperands and update the printer to understand that. Also update the disassembler to add the segment to the MCInst when its creating it. When I did these two things the MCCodeEmitter broke because it tried to interpret the extra operand as an immediate. I think I probably need to change the form from RawFrm to something new that I can teach the MCCodeEmitter to handle correctly.
I haven’t looked at the patches yet. I was out of town most of last week and trying to get caught back up.
Actually, now I grok the disassembler a bit better I think I can kill
IC_OPSIZE_ADSIZE. I just need to special-case it to stop the decode
conflict warning, and let them be handled like the IC_ADSIZE case. The
disassembler handles the OpSize bit for the register all by itself,
without really referring to the operands in the table.