So my backend is proceeding nicely; I have most of the ALU instructions, some memory operations, and it's even doing sign extension correctly (which wasn't easy). Next step is to make all the stack frame machinery work. Looking at the other ports, there's quite a lot of this, and a lot of it is unobvious. I'm aware that most of the existing first-class ports have to conform to third-party ABIs when it comes to stack layout and calling convention, which makes them more complicated than it could be. My archicture doesn't have an ABI, so I get to pick whatever is easiest; and it's a register-centric RISC architecture, so every stack spill/restore becomes a memory op. Given that I don't care what my stack layout is, is there any built-in support in LLVM that will make my life easier? For example, can I get LLVM to automatically expand stack spills/restores into load and store instructions? Can I get LLVM to figure out the stack layout itself? (Also, if any of this has been documented, a pointer would be really handy...) -- ┌─── dg@cowlark.com ───── http://www.cowlark.com ───── │ │ "You cannot truly appreciate _Atlas Shrugged_ until you have read it │ in the original Klingon." --- Sea Wasp on r.a.sf.w -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 876 bytes Desc: OpenPGP digital signature URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140328/033da51c/attachment.sig>