Commit Graph

37 Commits

Author SHA1 Message Date
Platin21 86f831ddd1 This adds code which checks how big the return is and if it is to big returns the value via sret 2021-12-27 22:10:52 +01:00
Platin21 8dbeed8a9f Removes unneeded lookups / Adds sret to call site which fixes the mac bug 2021-12-23 01:59:31 +01:00
gingerBill a4b68b93f2 Modify ABI for the wasm32 2021-11-01 23:18:39 +00:00
gingerBill 5f51337a01 Add procs for wasm32 2021-10-31 19:00:01 +00:00
gingerBill 32506a34ff Separate out the ABI for wasm32 from 386 2021-10-31 15:23:39 +00:00
gingerBill 5bc8a491a7 Begin work on supporting wasm64; Correct wasm32 compilation behaviour 2021-10-30 23:24:34 +01:00
gingerBill a440d8d812 Improve use of vector muladd operations 2021-10-25 13:10:56 +01:00
gingerBill 036fa5cb24 Correct ABI for windows with LLVM 2021-10-02 18:12:34 +01:00
gingerBill 042dbda47f Replace many uses of heap_allocator() with permanent_allocator() 2021-09-13 01:30:30 +01:00
gingerBill 76707e1d2f Add sanity casts for 32/64 bit correctness 2021-07-12 11:03:12 +01:00
gingerBill 582f423b67 Improve vector arithmetic generation for array programming operations 2021-06-12 16:37:20 +01:00
gingerBill 28e9a4f79c Replace js_wasm32 with freestanding_wasm32 2021-06-08 12:18:26 +01:00
gingerBill b8f8d4c3a1 Modify ABI for the Odin calling conventions on SysV slightly 2021-05-22 11:33:08 +01:00
gingerBill 8d044fd442 Minor ABI change and cleanup 2021-05-17 17:08:25 +01:00
gingerBill e08f39ec28 Remove unneeded assert 2021-05-11 16:20:50 +01:00
gingerBill d353f97f91 Add byval with align, sret attributes for SysV 2021-05-11 13:30:27 +01:00
gingerBill f31b09212a Improve SysV ABI 2021-05-11 12:00:27 +01:00
gingerBill ff6fdc7812 Correct SysV ABI for -> (f32, bool) 2021-05-10 21:16:26 +01:00
gingerBill 0d044eabac Remove non-InContext type creations 2021-05-03 15:00:50 +01:00
gingerBill 54e6c50769 Implement f16 functionality 2021-04-01 10:06:00 +01:00
gingerBill 178e891c78 Fix some LLVM asserts by using LLVMConstNamedStruct everywhere 2021-03-19 15:47:10 +00:00
gingerBill 2a1bec9fbb Clean up lb_end_procedure_body logic 2021-03-02 00:43:25 +00:00
gingerBill 302742689b Patch win64 ABI problem caused by a bug in LLVM for 128 bit integers 2021-03-01 12:15:28 +00:00
gingerBill 84deee75cc Make lb_create_enum_attribute ignore certain attributes (they are not properly supported by the actual LLVM C API) 2021-02-25 11:39:46 +00:00
gingerBill 58422711d1 Remove sret attribute in llvm_abi.cpp 2021-02-25 00:22:47 +00:00
gingerBill ba817d153c Get compiling on Mac Mini M1 2021-02-24 23:21:34 +00:00
gingerBill 2d88c6c6a5 Begin work on aarch64 ABI for -llvm-api 2021-02-24 16:49:19 +00:00
gingerBill 28ed310f31 Remove "pure" and "pure_none" calling conventions 2021-02-23 13:10:23 +00:00
gingerBill 9e42cb1595 Add comparisons to structs where all fields are comparable == and != 2020-11-23 12:20:04 +00:00
gingerBill 4379917c7d Re-enable zeroext for i1 2020-11-22 21:52:39 +00:00
gingerBill a2461bdf6b Modify llvm_abi.cpp to work correctly for win64 abi of i128 types. (it's a pain) 2020-11-22 21:38:45 +00:00
gingerBill db0bcbc4f4 Fix calling convention for new LLVM ABI, and changePtrSet index to be u32 rather than isize 2020-11-15 21:19:08 +00:00
gingerBill 3c1c10a178 Begin clarifying allocation patterns by changing from heap_allocator to specific arenas 2020-11-15 18:08:52 +00:00
gingerBill 9f93042163 Improve lb_abi_to_odin_type 2020-11-14 17:09:42 +00:00
gingerBill a64ea342df Improve USE_NEW_LLVM_ABI_SYSTEM's System V ABI 2020-11-12 23:40:13 +00:00
gingerBill a6c5c203ab Begin work on Sys V for new ABI system 2020-11-12 01:21:09 +00:00
gingerBill 70b8b3c7dd Update LLVM backend to begin work on a generic ABI system 2020-11-12 00:43:49 +00:00