<div dir="ltr">Inspired by Jason Turner's talk at  CppCon 2016: Jason Turner “Rich Code for Tiny Computers: A Simple Commodore 64 Game in C++17”<div><br><div>I got interested in writing a Zilog Z80 backend for LLVM. Jason actually did no such thing, but instead wrote a x86-to-6502 translator (reassembler he calls it) <a href="https://github.com/lefticus/x86-to-6502">https://github.com/lefticus/x86-to-6502</a></div><div><br></div><div>So I'm now trying to bootstrap this project.</div><div><br></div><div>Goal:</div><div>- be able to use C++17 (or whatever is supported of that in clang-master) on my Z80 based MSX2 computer.</div><div><br></div><div>why? you might ask, well, just because I'm a software engineer and I like doing something I have not tried before.</div><div>In the past I have created a PC-to-MSX USB-interface called the 'nowind' interface (<a href="http://nowind.nl/">http://nowind.nl/</a>)</div><div>It is actually a MSX2-compatible cartridge that from the MSX2 perspective appears to be a diskdrive, but actually the 'disk' is a disk-image file on the PC.</div><div><br></div><div>The host-software is written in c++98 and the z80-software (residing in flashrom) is written in z80-assembly, which I mastered quite well back then.</div><div><br></div><div>So why am I telling you this?</div><div>I would like to get some pointers on how to get started.</div><div>My development environment is currently windows, but if there is any advantage in switching to linux, that is also fine.</div><div><br></div><div>I have gcc/gdb experience but its a little rusty.<br></div><div><div>so I started reading <a href="http://llvm.org/docs/GettingStarted.html">http://llvm.org/docs/GettingStarted.html</a>, and downloaded <a href="http://llvm.org/releases/3.9.0/LLVM-3.9.0-win64.exe">http://llvm.org/releases/3.9.0/LLVM-3.9.0-win64.exe</a> precompiled binaries to get the hang of the toolchain.</div></div><div><br></div><div>Couple of questions:</div><div>- First thing I noticed is that clang-dis is not part of the pre-compiled package?</div><div>- What is a wise approach, should I compile clang from scratch to get clang-dis?</div><div>- are LLVM  backends for clang also in the trunk <span style="background-color:rgb(248,248,248);color:rgb(0,0,0);font-family:consolas,"deja vu sans mono","bitstream vera sans mono",monospace;font-size:0.95em"><a href="http://llvm.org/git/llvm.git">http://llvm.org/git/llvm.git</a> ?</span></div><div><font color="#000000" face="consolas, deja vu sans mono, bitstream vera sans mono, monospace"><span style="font-size:12.35px;background-color:rgb(248,248,248)">-</span></font> should I start by examining and existing backend, if so, where do I find one?</div><div><br></div><div>I hope anyone can give me some guidance to bootstrap this... </div><div><br></div><div>Greetings,</div></div><div><br></div><div>Jan</div><div><br></div><div><br></div></div>