Commit graph

74 commits

Author SHA1 Message Date
5c3e59eaf5 Modules wip: refactor IR compiler 2026-08-02 22:27:30 +03:00
b16894ebd1 x86_64 backend: tons of fixes + raytracer example works! 2026-08-02 15:24:50 +03:00
4c583c8b3b x86_64 backend: support returning structs & arrays 2026-08-02 15:24:50 +03:00
866af8d21c x86_64 backend: fix handling large struct function arguments 2026-08-02 15:24:50 +03:00
d504a90555 Support structs and arrays as function arguments on x86_64 2026-08-02 15:24:50 +03:00
649574c573 Add software implementation of float16 2026-08-02 15:24:47 +03:00
e56242ca62 Fix macos_aarch64 backend integer casts 2026-07-29 16:28:44 +03:00
f727883f46 x86_64 compiler backend wip 2026-07-28 23:21:45 +03:00
877efa6981 Add jit/helpers.hpp 2026-07-28 23:21:22 +03:00
8aec010bd0 Aarch64 compiler cleanup 2026-07-28 23:20:14 +03:00
88b215e5cd Split jit::abi into isa & platform enums, rename arch/aarch64 -> arch/macos_aarch64 backend 2026-07-27 17:36:02 +03:00
9337490f5b Implement global variables 2026-05-08 21:38:44 +03:00
8ba5345daf Implement ternary ifs 2026-04-02 20:19:55 +03:00
e0c1db4978 Fix calling functions by pointer in Aarch64 compiler 2026-04-01 23:43:47 +03:00
7b6f88ea5a Add bounds checks for aarch64 instruction builder immediate arguments 2026-03-31 19:28:00 +03:00
5450fe8077 Fix comparing pointers 2026-03-31 19:27:36 +03:00
6863cdf567 Fix calling function returning large structs from functions returning large structs in Aarch64 compiler 2026-03-31 13:29:37 +03:00
0784e27a01 Fix jumping in Aarch64 compiler 2026-03-30 20:29:58 +03:00
75f1cea3f3 Support casting pointers <-> u64 2026-03-30 20:01:56 +03:00
52a2a00d1f Fix returning large structs from functions in Aarch64 2026-03-30 16:53:02 +03:00
38fd23b50e Add left/right shift operators 2026-03-30 12:04:34 +03:00
138bddf187 Remove old aarch64 compiler and update plans 2026-03-29 23:22:29 +03:00
e771542773 Implement array-types function arguments & return values in Aarch64 compiler 2026-03-29 22:52:48 +03:00
1404437324 IR & Aarch64 compiler arrays support wip 2026-03-29 19:37:49 +03:00
041513f33e Support struct return values in aarch64 compiler 2026-03-27 20:25:16 +03:00
7622a882b5 Support struct function arguments + fixes 2026-03-27 20:02:50 +03:00
62fc4c88de Fix floating-point function arguments in Aarch64 compiler v2 2026-03-27 16:17:37 +03:00
0dc740d656 IR & Aarch64 compiler structs support wip: struct constructors, assignment, field access 2026-03-27 14:53:36 +03:00
14cb393076 Support comparison operators for integers of different types 2026-03-26 23:49:28 +03:00
d31758eb4a Support frame pointers 2026-03-25 19:23:12 +03:00
64514d9bf4 Fix storing <8 byte sized objects on stack 2026-03-25 19:22:52 +03:00
5d7968c30b Implement IR + Aarch64 pointers 2026-03-25 16:30:43 +03:00
42e7f7961e New IR -> Aarch64 compiler wip: basic operations done (no pointers, structs, arrays) 2026-03-25 00:22:50 +03:00
0c11b09548 Pointers wip 2026-03-23 14:41:47 +03:00
b267f09ea4 Fix abi.cpp indentation 2026-03-23 00:17:26 +03:00
5d00f1ddb7 Refactor AST: store direct references to AST nodes in indentifiers 2026-03-22 20:02:40 +03:00
292d6eeabf Refactor: split pre-AST (contains if/else if/else blocks, field definitions, no hierarchy) and the actual AST obtained after resolving scoping & indentation (contains if chains, no field definitions) 2026-03-22 14:06:34 +03:00
56c63d50ac Struct types refactor v2: store AST node pointer in struct type 2026-03-22 13:34:35 +03:00
1a0dd2a48f Aarch64 JIT compiler wip: partial struct support 2026-03-17 18:08:23 +03:00
b25400ad65 Properly implement inner functions in aarch64 compiler & support module entry point 2026-03-15 14:16:33 +03:00
89b6b09be5 Fix scope stack offset cleanup in aarch64 compiler 2026-03-13 14:25:05 +03:00
51c78169b3 Validate functions with no return & automatically add return in the end of a function returning unit 2026-03-13 13:40:09 +03:00
ad46b230d8 Fix missing handling of expression statements in aarch64 compiler 2026-03-13 12:53:18 +03:00
e5ce32d25f Fix handling empty returns in aarch64 compiler 2026-03-13 12:53:03 +03:00
788e98409a Implement remainder operator in aarch64 compiler 2026-03-13 11:24:43 +03:00
0541068c2b Improve 'not implemented' error messages 2026-03-13 11:09:39 +03:00
7f574eabbd Fix extending register after logical not in aarch64 compiler 2026-03-13 11:05:20 +03:00
c8cd86dd0b Add foreign functions (stub in interpreter, implemented in aarch64 compiler) 2026-03-13 11:01:53 +03:00
cb433d87bf Fix short-circuit || for small integer types 2026-03-12 23:13:42 +03:00
927368aa80 Add short-circuiting versions of and/or (&& and ||) and implement them for bools and integers in interpreter and aarch64 compiler 2026-03-12 21:37:15 +03:00