x86 is currently not supported. But the reason is only a single not refactored backend.
The DisassemblerEmitter.cpp emits the decoding tables via the class RecognizableInstr for x86 or, for all other targets, via the DecoderEmitter class.
For obvious reasons we decided to refactor the DecoderEmitter first. But this also means that we can not generate the decoder tables in C for the x86 target.
But as far as I can tell refactoring the RecognizableInstr class is the only thing, which prevents us from generating the decoder tables. All the other backends (RegisterInfo, AsmMatcher etc.) are not special for x86.
To support x86 we simply need to:
- Figure out how the
x86 specific backends work.
- Move every code snippet which prints code to the output stream into the
PrinterLLVM and PrinterCapstone classes.
x86is currently not supported. But the reason is only a single not refactored backend.The
DisassemblerEmitter.cppemits the decoding tables via the classRecognizableInstrforx86or, for all other targets, via theDecoderEmitterclass.For obvious reasons we decided to refactor the
DecoderEmitterfirst. But this also means that we can not generate the decoder tables in C for thex86target.But as far as I can tell refactoring the
RecognizableInstrclass is the only thing, which prevents us from generating the decoder tables. All the other backends (RegisterInfo,AsmMatcheretc.) are not special forx86.To support
x86we simply need to:x86specific backends work.PrinterLLVMandPrinterCapstoneclasses.