Commit Graph

100 Commits

Author SHA1 Message Date
gingerBill c18fc2da9f Remove some dead code 2020-07-14 16:36:33 +01:00
gingerBill 9da1347c21 Fix Source_Code_Location error for *_insert_dynamic_map_key_and_value procedures 2020-07-08 22:57:39 +01:00
gingerBill 1b2cc739a9 Handle llvm package name edge case for IR mangling 2020-06-30 19:12:53 +01:00
gingerBill 92363da58e Add -show-system-calls; Update runtime for windows_386; Fix some minor bugs 2020-06-30 10:09:58 +01:00
gingerBill 0ea64182f1 Begin work on windows 386 2020-06-29 17:35:33 +01:00
gingerBill a6edcf4f18 Fix ABI typo bug; Add pop_safe and pop_front_safe 2020-06-22 21:03:57 +01:00
gingerBill 2b27300387 Fix LLVM code gen bug 2020-06-22 16:57:21 +01:00
gingerBill 724c776dbe Fix enumerated array type information creation bug 2020-06-17 23:28:39 +01:00
gingerBill 781395ada1 Add deferred_in_out attribute 2020-06-16 16:21:44 +01:00
gingerBill c3ebc49ad2 Fix @static slice for LLVM C API backend 2020-06-15 11:54:18 +01:00
gingerBill 01d12770fa Fix compound literals for constant procedure fields 2020-06-11 16:11:54 +01:00
gingerBill 82b559c32b Remove debug code 2020-06-10 19:29:24 +01:00
gingerBill f305726015 Fix #c_vararg for LLVM C API 2020-06-10 16:15:56 +01:00
gingerBill 99944f3b02 Improve behaviour of return with named results to aid with defer statements 2020-06-10 14:53:35 +01:00
gingerBill a9295d33ab Fix #674 2020-06-10 14:39:50 +01:00
gingerBill d0920804c3 Stop statement generation after terminating instruction in current block (LLVM C API) 2020-06-10 13:57:25 +01:00
gingerBill 97d3d4ff6f Minor changes for \*nix backend 2020-06-10 13:38:17 +01:00
gingerBill 6b3ee447f0 Basic cross compilation support 2020-06-10 12:26:31 +01:00
gingerBill 9b1cc6e94f Update logic for slice literals, backing array to be on the stack if possible (LLVM C API) 2020-06-08 12:41:42 +01:00
gingerBill 59a0bbb385 Improve termination rules checking for missing return; Make diverging procedure -> ! be terminators 2020-06-06 15:16:24 +01:00
gingerBill d8f9daac95 Fix different endian integers for LLVM C API backend 2020-06-05 13:12:57 +01:00
gingerBill 15c4077806 Fix WASM foreign import names 2020-06-04 00:30:44 +01:00
gingerBill 37a3abdaaa Fix calling convention stuff with LLVM C API 2020-06-03 21:23:30 +01:00
gingerBill d80049bfd2 Change runtime.Type_Info_Enum_Value to be i64 internally rather than a union 2020-06-03 21:10:07 +01:00
gingerBill 626b4740b1 Add wasm-ld support for wasm code generation 2020-06-03 13:12:38 +01:00
gingerBill bf5ce04b24 Improve rules for shifting behaviour
Example:
x: u64 = 123;
assert(x >> 64 == 0); // In C this would be 123 because (64 & 0b111111) == 0

a: u64 123;
assert(a << 64 == 0); // In C this would be 123 because (64 & 0b111111) == 0
2020-05-31 13:50:17 +01:00
gingerBill 84fd40de77 Fix rules for recursive initialization with procedure entities; Fix executable name if not given 2020-05-30 12:23:41 +01:00
gingerBill 6ac0fb80a6 Minor tokenizer performance improvements 2020-05-27 12:32:11 +01:00
gingerBill 098699103d Begin work on supporting wasm32 architecture 2020-05-25 12:46:23 +01:00
gingerBill 2be87169ef Fix #656 2020-05-24 12:52:08 +01:00
gingerBill 26fe9b0212 Fix SelectorCallExpr with no return values 2020-05-22 23:41:17 +01:00
gingerBill 7bd1039a49 Selector Call Expressions: x->y(123) == x.y(x, 123) 2020-05-22 14:54:30 +01:00
gingerBill 3f23a0b3b0 Fix edge cases of relative pointers 2020-05-17 15:23:27 +01:00
Tetralux 96ed948590 LLVM C backend: Obey directives on blocks, procedures, and expressions
e.g: #no_bounds_check / #bounds_check
2020-05-16 17:04:16 +00:00
Tetralux c4b492fb64 Add bounds checks to LLVM C backend 2020-05-16 14:25:36 +00:00
gingerBill e1bdaa981a Relative pointer and relative slices 2020-05-15 18:45:24 +01:00
gingerBill 95e8668b77 Relative pointers in old backend 2020-05-15 17:52:09 +01:00
gingerBill ff92eb9112 Relative pointers 2020-05-15 17:37:00 +01:00
gingerBill 2630e9ced1 Fix #622 on both backends 2020-05-13 23:00:34 +01:00
gingerBill de8c1165c2 Fix procedure literal declarations at file scope with -llvm-api 2020-05-13 22:30:38 +01:00
gingerBill 6861ff47bc Replace entity_of_ident with entity_of_node 2020-05-12 16:28:22 +01:00
gingerBill 0ba3b5c0bd Fix bug for array-like compounds for LLVM-API 2020-05-12 14:57:37 +01:00
gingerBill e27f5796d6 Add experimental atom op tables for llvm-backend 2020-05-02 18:45:57 +01:00
gingerBill f63b9806d2 LLVM API: Fix compound literals with constant parameters to union fields 2020-04-25 14:45:34 +01:00
gingerBill 97f7a558fa #optional_ok tag for procedures 2020-04-19 21:45:04 +01:00
gingerBill 92402603b9 Change find_or_generator_context_ptr behaviours 2020-04-17 14:02:45 +01:00
gingerBill 4438b3e7af Fix LLVM API backend for procedure "constant" values 2020-04-17 13:50:28 +01:00
gingerBill 602a651613 Fix name mangling for @(private) entities 2020-04-15 21:58:16 +01:00
gingerBill f229084baa Basic polymorphic named procedure parameters for procedures and records 2020-04-13 15:48:56 +01:00
gingerBill f09b6a4c90 Simplify compiler's Map and create a StringMap specifically for strings 2020-04-13 13:02:30 +01:00