Timon Kruiper
071417161d
stage2: add initial impl of LLVM backend in self-hosted compiler
2020-12-28 21:19:40 +01:00
Andrew Kelley
f75d4cbe56
Revert "stage2: add compile log statement ( #7191 )"
...
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-28 11:24:53 -07:00
g-w1
1634d45f1d
stage2: add compile log statement ( #7191 )
2020-12-26 02:40:49 +02:00
Noam Preil
37438dd789
CBE: add support for bool,u32
2020-12-23 01:14:35 +11:00
Alex Cameron
40f0275e7c
Implement emit-h
2020-12-23 01:14:35 +11:00
Jakub Konka
2082c27557
stage2+aarch64: clean up offset helper structs
2020-12-09 17:21:21 +01:00
Jakub Konka
e91dbab256
stage2+aarch64: fix stage2 tests
2020-12-09 17:21:17 +01:00
Jakub Konka
21dae538ca
stage2+aarch64: add load and store pair of registers instructions
2020-12-09 17:20:14 +01:00
Jakub Konka
c749b78df5
stage2 macho: add orr and orn instructions
2020-11-26 11:50:09 +01:00
Jakub Konka
39336fd2e9
stage2 aarch64: assert register is 64bits in PCrel
...
Thanks @joachimschmidt557 for pointing out this fix!
2020-11-18 10:12:39 +01:00
Jakub Konka
5ff8dd179e
stage2 aarch64: add PC relative address instructions
2020-11-18 08:46:52 +01:00
tgschultz
48d60834fd
Move leb128 and remove trivial *mem functions as discussed in #5588 ( #6876 )
...
* 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-16 18:51:54 -05:00
Jakub Konka
8f47e8feb6
stage2 aarch64: add NOP instruction
2020-11-16 13:37:38 -08:00
Jakub Konka
f512676d0b
stage2 aarch64: add str instruction
2020-11-11 14:34:53 +01:00
Jakub Konka
f1960302d1
stage2 aarch64: add ldr instruction + smoke tests
2020-11-11 14:34:53 +01:00
joachimschmidt557
aa9df72f71
stage2 AArch64: MoveWideImmediate instructions + test coverage
2020-11-11 14:34:53 +01:00
joachimschmidt557
4c8f69241a
stage2 aarch64: add more instructions
2020-11-11 14:34:53 +01:00
joachimschmidt557
3c75d723ac
stage2 aarch64: add codegen/aarch64.zig
2020-11-11 14:34:53 +01:00
Jakub Konka
4ef6864a15
Add move wide with zero (movz) instruction
2020-11-11 14:34:53 +01:00
Jakub Konka
68bb1e91aa
Add testcase for serializing svc #0x80
2020-11-11 14:34:53 +01:00
Jakub Konka
d542e88706
Implement genAsm on aarch64
...
Add remaining PCS info: param and return registers in procedure calls.
2020-11-11 14:34:53 +01:00
joachimschmidt557
5ad501c00b
stage2 aarch64: add codegen/aarch64.zig
2020-11-11 14:34:53 +01:00
Vexu
28a0583b84
run zig fmt on src/ and test/
2020-10-31 12:21:49 +02:00
joachimschmidt557
7b4f3c7cfc
stage2 ARM: genSetStack and genSetReg from stack
2020-10-25 12:51:19 +01:00
joachimschmidt557
7d14426da4
stage2 ARM: enable backpatching return statement
2020-10-25 12:51:19 +01:00
joachimschmidt557
0e16328636
stage2 ARM: add multiply and multiply long instructions
2020-10-25 12:51:19 +01:00
joachimschmidt557
7391087df1
stage2 ARM: better immediate loading feat. movw and movt
2020-10-25 12:51:19 +01:00
Andrew Kelley
245d98d32d
Merge pull request #6291 from pixelherodev/cbe_arithmetic
...
CBE: addition and subtraction
2020-10-17 01:00:38 -04:00
Vignesh Rajagopalan
2ab0c7391a
Rename .macosx to .macos
2020-10-12 18:56:25 -04:00
Noam Preil
7b88215a49
Replace error message with unreachable
2020-10-06 15:09:57 -04:00
Noam Preil
ea7b2750c8
CBE: addition and subtraction
2020-10-06 15:09:57 -04:00
Noam Preil
e06ba9e86e
CBE: properly resolve Insts
2020-10-06 15:09:57 -04:00
Noam Preil
9ef6c0a035
CBE: utilize per-function arena allocator
2020-10-06 15:09:56 -04:00
Noam Preil
ce29fc0947
Make indentation adjustable (hardcode 4 spaces for now)
2020-10-06 15:09:56 -04:00
joachimschmidt557
fb58fb2d8d
stage2 ARM: add testcases for non-leaf fns, parameters, return values
2020-10-03 12:52:04 +02:00
joachimschmidt557
cfe486e388
stage2 ARM: Add push, pop alias instructions; non-leaf functions
...
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-02 19:39:17 +02:00
joachimschmidt557
35b228630c
stage2 ARM: Add stm, ldm variants and misc. additions
2020-10-02 19:39:17 +02:00
joachimschmidt557
0a54f04dbc
stage2 ARM: start adding more instructions, return values, parameters
2020-10-02 19:39:17 +02:00
Andrew Kelley
528832bd3a
rename src-self-hosted/ to src/
2020-09-21 18:38:55 -07:00