aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
AgeCommit message (Collapse)Author
2020-12-29stage2: C backend improvementsAndrew Kelley
* Module: improve doc comments * C backend: improve const-correctness * C backend: introduce renderTypeAndName * C backend: put `static` on functions when appropriate * C backend: fix not handling errors in genBinOp * C backend: handle more IR instructions - alloc, store, boolean comparisons, ret_ptr * C backend: call instruction properly stores its result * test harness: ensure execution tests have empty stderr
2020-12-28stage2: update C backend test cases for new outputAndrew Kelley
2020-12-28stage2: C backend: handle string literals more gracefullyAndrew Kelley
2020-12-28stage2: C backend: implement `@breakpoint` and clean up test harnessAndrew Kelley
2020-12-28stage2: C backend: properly render type of array declsAndrew Kelley
2020-12-28stage2: C backend: pointer cast decl refs if necessaryAndrew Kelley
2020-12-28stage2: add extern functionsAndrew Kelley
and improve the C backend enough to support Hello World (almost)
2020-12-28stage2: add initial impl of LLVM backend in self-hosted compilerTimon Kruiper
2020-12-28Revert "stage2: add compile log statement (#7191)"Andrew Kelley
The addition of `addDeclErr` introduced a memory leak at every call site, and I also would like to push back on having more than 1 compilation error per `Decl`. This reverts commit 1634d45f1d53c8d7bfefa56ab4d2fa4cc8218b6d.
2020-12-26stage2: add compile log statement (#7191)g-w1
2020-12-23CBE: add support for bool,u32Noam Preil
2020-12-23Implement emit-hAlex Cameron
2020-12-09stage2+aarch64: clean up offset helper structsJakub Konka
2020-12-09stage2+aarch64: fix stage2 testsJakub Konka
2020-12-09stage2+aarch64: add load and store pair of registers instructionsJakub Konka
2020-11-26stage2 macho: add orr and orn instructionsJakub Konka
2020-11-18stage2 aarch64: assert register is 64bits in PCrelJakub Konka
Thanks @joachimschmidt557 for pointing out this fix!
2020-11-18stage2 aarch64: add PC relative address instructionsJakub Konka
2020-11-16Move leb128 and remove trivial *mem functions as discussed in #5588 (#6876)tgschultz
* Move leb128 out of debug and remove trivial *mem functions as discussed in #5588 * Turns out one of the *Mem functions was used by MachO. Replaced with trivial use of FixedBufferStream.
2020-11-16stage2 aarch64: add NOP instructionJakub Konka
2020-11-11stage2 aarch64: add str instructionJakub Konka
2020-11-11stage2 aarch64: add ldr instruction + smoke testsJakub Konka
2020-11-11stage2 AArch64: MoveWideImmediate instructions + test coveragejoachimschmidt557
2020-11-11stage2 aarch64: add more instructionsjoachimschmidt557
2020-11-11stage2 aarch64: add codegen/aarch64.zigjoachimschmidt557
2020-11-11Add move wide with zero (movz) instructionJakub Konka
2020-11-11Add testcase for serializing svc #0x80Jakub Konka
2020-11-11Implement genAsm on aarch64Jakub Konka
Add remaining PCS info: param and return registers in procedure calls.
2020-11-11stage2 aarch64: add codegen/aarch64.zigjoachimschmidt557
2020-10-31run zig fmt on src/ and test/Vexu
2020-10-25stage2 ARM: genSetStack and genSetReg from stackjoachimschmidt557
2020-10-25stage2 ARM: enable backpatching return statementjoachimschmidt557
2020-10-25stage2 ARM: add multiply and multiply long instructionsjoachimschmidt557
2020-10-25stage2 ARM: better immediate loading feat. movw and movtjoachimschmidt557
2020-10-17Merge pull request #6291 from pixelherodev/cbe_arithmeticAndrew Kelley
CBE: addition and subtraction
2020-10-12Rename .macosx to .macosVignesh Rajagopalan
2020-10-06Replace error message with unreachableNoam Preil
2020-10-06CBE: addition and subtractionNoam Preil
2020-10-06CBE: properly resolve InstsNoam Preil
2020-10-06CBE: utilize per-function arena allocatorNoam Preil
2020-10-06Make indentation adjustable (hardcode 4 spaces for now)Noam Preil
2020-10-03stage2 ARM: add testcases for non-leaf fns, parameters, return valuesjoachimschmidt557
2020-10-02stage2 ARM: Add push, pop alias instructions; non-leaf functionsjoachimschmidt557
Non-leaf functions now work. Combined with simple parameters and return types, this allows more complicated programs than Hello World to be correctly compiled.
2020-10-02stage2 ARM: Add stm, ldm variants and misc. additionsjoachimschmidt557
2020-10-02stage2 ARM: start adding more instructions, return values, parametersjoachimschmidt557
2020-09-21rename src-self-hosted/ to src/Andrew Kelley