| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | llvm 21 support | Laytan | 2025-10-14 | 1 | -0/+4 |
| | | |||||
| * | Again, better const union stuff | gingerBill | 2025-09-24 | 1 | -17/+17 |
| | | |||||
| * | fix dropping part of particular vecs | Laytan | 2025-08-01 | 1 | -1/+1 |
| | | |||||
| * | fix vec offset calculation | Laytan | 2025-07-31 | 1 | -1/+1 |
| | | |||||
| * | amd64 support `half` in the abi too | Laytan | 2025-07-31 | 1 | -2/+21 |
| | | |||||
| * | amd64 abi fixes regarding vectors | Laytan | 2025-07-31 | 1 | -9/+16 |
| | | | | | | | | - Fixes the code so SSEUp is grouped/skipped over properly (Fixes #5429) - Fixes f16 vectors using garbage widths, because it would call LLVMGetIntTypeWidth and an f16 is not an int so doesn't have that function | ||||
| * | Fix WASM C ABI for raw unions | Laytan Laats | 2025-06-20 | 1 | -14/+56 |
| | | |||||
| * | fix compat with earlier llvm versions | Laytan Laats | 2025-05-15 | 1 | -1/+1 |
| | | |||||
| * | some ABI fixups and improvements | Laytan Laats | 2025-05-09 | 1 | -28/+14 |
| | | | | | | | | | | | | Started with trying to enable asan in the CI for MacOS, noticed it wasn't enabled on the `tests/internal` folder, it came up with a couple of issues with the abi/OdinLLVMBuildTransmute that this also solves. - Looking at clang output for arm64, we should be promoting `{ i64, i32 }` to `{ i64, i64 }` - after doing the previous point, I noticed this is not handled well in OdinLLVMBuildTransmute which was emitting loads and stores into the space of a value that was alignment, asan does not want this, looking at clang output again, a memcpy is the appropriate way of handling this. - Having done this we don't need the hacky "return is packed" set anymore in the amd64 sysv ABI anymore either | ||||
| * | Fix SysV ABI bug | gingerBill | 2025-04-15 | 1 | -9/+82 |
| | | |||||
| * | Update to LLVM 20.1.0 | gingerBill | 2025-03-18 | 1 | -0/+4 |
| | | |||||
| * | [ABI FIX] Fix 128-bit ABI issues | gingerBill | 2024-10-04 | 1 | -2/+2 |
| | | |||||
| * | ABI BREAKING for SysV: Change how multiple return values are handled to be ↵ | gingerBill | 2024-09-30 | 1 | -6/+10 |
| | | | | | separate like all other ABIs | ||||
| * | Fix LLVM 18 ABI for 128-bit integers (because LLVM broke things) | gingerBill | 2024-09-30 | 1 | -0/+5 |
| | | |||||
| * | Fix 128-bit integer support for wasm targets | gingerBill | 2024-09-20 | 1 | -4/+5 |
| | | |||||
| * | unify LB_ABI_INFO and LB_ABI_INFO_CTX | Laytan Laats | 2024-08-20 | 1 | -18/+23 |
| | | |||||
| * | add support for linux_riscv64 and freestanding_riscv64 | Laytan | 2024-08-20 | 1 | -9/+260 |
| | | |||||
| * | Change Odin calling convention to not do a copy on `byval` for SysV | gingerBill | 2024-07-14 | 1 | -4/+4 |
| | | |||||
| * | Mock out `#no_capture` for future use | gingerBill | 2024-07-14 | 1 | -0/+6 |
| | | |||||
| * | fix not setting cc before using it in abi computations | Laytan Laats | 2024-07-01 | 1 | -1/+1 |
| | | |||||
| * | make structs with multiple fields always return indirect in wasm c abi | Laytan Laats | 2024-07-01 | 1 | -8/+8 |
| | | |||||
| * | fix large ints amd64 sysv abi | Laytan Laats | 2024-06-09 | 1 | -1/+9 |
| | | | | | Fixes #3707 | ||||
| * | compiler: support returning 0 sized types in arm64 abi | Laytan Laats | 2024-04-24 | 1 | -2/+3 |
| | | |||||
| * | fix amd64 sysv abi to pass asan everywhere | Laytan Laats | 2024-04-04 | 1 | -32/+15 |
| | | | | | | | | | | | | | | | | I verified the PR by running the entire test suite of Odin itself with `-sanitize:address` and also the ols test suite (which caused unique problems before). A test has also been added with some problematic code, Windows seems to have problems with asan in CI or in general so it is not ran there. The LB_ABI_COMPUTE_RETURN_TYPES block has been removed entirely because it was unused, I got pretty confused why it didn't effect anything at first. Fixes #3211 | ||||
| * | Merge pull request #3372 from laytan/fix-lbarg-ignore-logic | gingerBill | 2024-04-04 | 1 | -1/+1 |
| |\ | | | | | fix lbArg_Ignore logic | ||||
| | * | fix lbArg_Ignore logic | Laytan Laats | 2024-04-04 | 1 | -1/+1 |
| | | | | | | | | | Fixes #2698 | ||||
| * | | fix 128 bit int alignment on arm64 | Laytan Laats | 2024-04-04 | 1 | -1/+1 |
| |/ | | | | Fixes #2403 | ||||
| * | Disable packing on ARM64 and AMD64 | gingerBill | 2024-03-28 | 1 | -2/+4 |
| | | |||||
| * | Fix wasm abi | gingerBill | 2024-03-26 | 1 | -1/+1 |
| | | |||||
| * | darwin: arm64 abi fixes | Laytan Laats | 2024-03-23 | 1 | -2/+19 |
| | | | | | | | | | | | | | | | | Since commit b4fe9677a1f69acde12e7cf296269f0c4d98362f some core tests segfault during build, upon investigation it is because some arg types were of size 0 and you can't have a 0 sized int. It also applies the earlier fix for parameters to the return types, this fixes #3223 Thought I would put this PR up, but I am in no way an expert in abi so feel free to close for a better fix if there is one. I am able to run the entire core test suite with `-sanitize:address` with these changes. | ||||
| * | Try doing `<{i64, i32}>` instead of `[i64, i64]` for ARM64 12-byte parameters | gingerBill | 2024-03-20 | 1 | -1/+15 |
| | | |||||
| * | Force packed structs in ABI parameters | gingerBill | 2024-03-20 | 1 | -2/+2 |
| | | |||||
| * | Change ARM64 ABI for integer-like parameters | gingerBill | 2024-03-20 | 1 | -8/+2 |
| | | |||||
| * | Update ARM64 ABI return type | gingerBill | 2024-03-20 | 1 | -8/+3 |
| | | |||||
| * | Begin work on making the type info table be constantly initialized | gingerBill | 2023-09-22 | 1 | -7/+7 |
| | | |||||
| * | Fix typo in wasm64p32 abi | gingerBill | 2023-06-07 | 1 | -1/+1 |
| | | |||||
| * | Ignore non-variable parameters | gingerBill | 2023-06-07 | 1 | -3/+6 |
| | | |||||
| * | Change ABI for wasm64p32 on slices and structs | gingerBill | 2023-06-07 | 1 | -16/+42 |
| | | |||||
| * | Merge branch 'master' into separate-int-word-sizes | gingerBill | 2023-06-06 | 1 | -10/+27 |
| |\ | |||||
| | * | Merge pull request #2563 from charles-l/master | gingerBill | 2023-05-29 | 1 | -9/+22 |
| | |\ | | | | | | | WASM: Use BasicC ABI convention for arguments that have `proc "c"` | ||||
| | | * | WASM: Use BasicC ABI convention for arguments that have a `proc "c"` annotation | charles | 2023-05-29 | 1 | -9/+22 |
| | | | | |||||
| | * | | Fix #2561 - ARM64 ABI bug for homogenous structs with more than 4 elements | gingerBill | 2023-05-29 | 1 | -1/+5 |
| | |/ | |||||
| * | | Rename `word_size` to `ptr_size` internally to make it clearer | gingerBill | 2023-04-20 | 1 | -4/+4 |
| | | | |||||
| * | | Begin work on new pseudo-architecture: wasm64p32 | gingerBill | 2023-04-20 | 1 | -1/+1 |
| |/ | |||||
| * | Improve `llreg` integer type generation for SysV ABI | gingerBill | 2023-03-19 | 1 | -58/+79 |
| | | |||||
| * | Improve SysV ABI for multiple return values that fit into a single register; ↵ | gingerBill | 2023-03-19 | 1 | -4/+8 |
| | | | | | Fixes #2384 | ||||
| * | Merge branch 'master' into compiler-improvements-2022-12 | gingerBill | 2022-12-21 | 1 | -1/+1 |
| |\ | |||||
| | * | Change the order of the args and ret for Arm64 ABI | gingerBill | 2022-12-21 | 1 | -1/+1 |
| | | | |||||
| * | | `gb_internal` LLVM backend | gingerBill | 2022-12-18 | 1 | -77/+77 |
| |/ | |||||
| * | Naïve optimization of named _split_ multiple return valued when `defer` is ↵ | gingerBill | 2022-11-25 | 1 | -1/+3 |
| | | | | | | | | | | | never used This is a naïve optimization but it helps a lot in the general case where callee temporary stack variables are not allocated to represent the named return values by using that specific memory. In the future, try to check if a specific named return value is ever used a `defer` within a procedure or not, or is ever passed to a nested procedure call (e.g. possibly escapes). | ||||