<div dir="ltr">Howdy llvm-dev,<div><br></div><div>Low priority question.  This doesn't really meet the requirements for an RFC, because it's probably merely a half-baked idea at this point.<div><br></div><div>As I was working with some tablegen internals on an 8-bit processor backend, it struck me that I would need at some point to write an emulator for that processor.</div><div><br></div><div>And I realized that, although I could write an emulator in the traditional manner, tablegen already has most of the information it needs to automatically generate the guts of an emulator.</div><div><br></div><div>Tablegen's already generating a disassembler (-gen-disassembler). </div><div><br></div><div>At the least, tablegen could be given an additional backend that says, "given this instruction, do this emulation step."  Such a step could be pure code copied from the .td files, or it could be compositionally constructed based on the classes that an object is composed from.</div><div><br></div><div>You'd have to write your own code to deal with emulated machine state, but hey, instruction parsing would be an item off the to-do list.</div><div><br></div><div>I would have a hard time believing that this concept is novel.  Has anyone else taken a crack at this?</div><div><br></div><div>Sincerely,</div><div><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">---<br><br>John Byrd<br>Gigantic Software<br>2321 E 4th Street<br>Suite C #429<br>Santa Ana, CA  92705-3862<br><a href="http://www.giganticsoftware.com" target="_blank">http://www.giganticsoftware.com</a><br>T: (949) 892-3526 F: (206) 309-0850</div></div></div></div>