Commit Graph

381 Commits

Author SHA1 Message Date
gingerBill
9870cd4c36 Merge pull request #7271 from odin-lang/bill/inline-asm
`asm` templates
2026-08-18 19:19:40 +02:00
kalsprite
c6fcad51f8 riscv64: use a Slice for the coerce offsets 2026-08-17 18:54:58 -07:00
gingerBill
645b57be9f Merge pull request #7327 from kalsprite/abi_conformance
ABI Conformance Harness + Fixes
2026-08-17 16:28:01 +02:00
gingerBill
1f2234a4b2 Merge branch 'master' into bill/inline-asm 2026-08-17 11:44:14 +01:00
gingerBill
a03d5addfa Merge pull request #7334 from kalsprite/riscv64_arg_coerce
riscv64: read a flattened aggregate's members from their real offsets
2026-08-17 12:40:36 +02:00
kalsprite
f7b734c82b deinterleave -> shuffle 2026-08-16 00:24:09 -07:00
kalsprite
95c4004239 switch to shuffle intrinsic since #simd is pow2 2026-08-16 00:16:21 -07:00
kalsprite
d52aff5c4b impl riffle for llvm<=20 fallback on interleave 2026-08-15 23:53:54 -07:00
kalsprite
ba708a2ad2 riscv64: read a flattened aggregate's members from their real offsets 2026-08-14 19:15:11 -07:00
kalsprite
c2389067d2 arm64 HFA eligibility; byval stack slot align on i386, amd64 + callsite; sse eightbyte merge 2026-08-12 23:11:39 -07:00
gingerBill
036e38442b Begin work on lb_emit_asm_template_call 2026-08-09 21:55:36 +01:00
kalsprite
ffd7ef024c remove dead simd_rem 2026-08-09 12:04:08 -07:00
Mihail Moskov
dc022d53b9 fixes call site attribute->arg association when args are ignored 2026-08-06 17:42:13 +03:00
gingerBill
cce7159a55 Merge pull request #7208 from Taylbr/poly-proc-fix
Fix: Polymorphic procedures resolving to nil + further fixes
2026-08-05 16:56:34 +02:00
gingerBill
cd1e8293d7 Merge pull request #7185 from subotac/fix/variadic-tuple-arguments
fix: pack tuple results into variadic arguments
2026-08-05 16:56:24 +02:00
Mihail Moskov
2f0ced70ab fixes an obscure segfault on targets that ignore zero sized params in the llvm signature 2026-08-04 18:57:32 +03:00
Brody
7945cf3ac3 Merge branch 'master' into poly-proc-fix 2026-08-05 00:19:06 +10:00
Mihail Moskov
9630660f53 fixes compile error due to no_alias shifting position on procedures with indirect returns 2026-08-04 16:51:04 +03:00
subotac
d36e9a24b1 fix: remove unused variadic element type 2026-08-04 14:02:06 +03:00
Brody
91e0e6ce47 fix: record resolved entity for proc-typed default values 2026-08-04 19:12:08 +10:00
gingerBill
9914a57fc7 Add intrinsics.soa_copy_from_slice and use it within _append_soa_elems replacing the old handwritten unrolled approach 2026-08-03 14:41:04 +01:00
Yawning Angel
cd08f535c8 src: Use llvm.readsteadycounter on Linux RISC-V
Why `rdcycle` is kernel only while `rdtime` is not is a mystery to me.
2026-08-02 22:09:22 +09:00
subotac
a4091c5d37 fix: pack tuple results into variadic arguments 2026-08-01 19:48:54 +03:00
Jeroen van Rijn
94be05ead1 Merge pull request #6918 from Kelimion/deprecate-llvm-14
Remove LLVM 14 support
2026-07-03 21:35:47 +02:00
gingerBill
d595bf1917 Merge pull request #6924 from tf2spi/6815-patch-simd-min-max
Fix misuse of lb_emit_(min|max) in simd_(min|max)
2026-07-03 16:34:08 +01:00
gingerBill
328f511576 Merge pull request #6939 from tf2spi/6832-no-code-regen
Avoid code regeneration for fns in unroll
2026-07-03 13:06:56 +01:00
misomosi
ee1cad0fcc Avoid code regeneration for fns in unroll 2026-07-03 00:46:17 -04:00
misomosi
b5e3b08a8c Remove use of llvm.(max|min)num in SIMD builtins 2026-07-02 09:56:38 -04:00
MauriceElliott
56cee0c2cf fix: made suggested changes to add a playdate subtarget, updated help text and reduce required build flags for playdate to just the subtarget, no-movt and cortex-m7 added to default on playdate subtarget flag. 2026-07-01 21:18:28 +01:00
misomosi
f276d77c0c Fix misuse of lb_emit_(min|max) in simd_(min|max) 2026-07-01 10:59:03 -04:00
Jeroen van Rijn
2d2979a5f2 Remove old pass manager 2026-06-30 22:44:28 +02:00
MauriceElliott
a3fa3476c6 feat(arm32 cdecl): Added thumb as the triple for cortex-m7. Updated the calling convention for cortex-m7 arm32 micro processors as the soft float register was being used when calling across the C ABI boundary causing guff data to be passed. 2026-06-30 20:07:36 +01:00
misomosi
12e8ba8d66 Use lb_add_values_to_array for cvarargs 2026-06-29 10:01:50 -04:00
A1029384756
8ccee66157 [stack-canaries] fixed platform behavior 2026-06-12 23:27:32 -04:00
A1029384756
2373fabe47 [stack-canaries] added protection modes 2026-06-12 22:57:39 -04:00
A1029384756
da742fc526 [no-plt] enable no-plt behavior on linux arm64 and amd64 targets 2026-06-08 10:58:05 -04:00
gingerBill
1c9fa5d0b7 Merge pull request #6731 from odin-lang/bill/expand-values-operator
Support `**` as `expand_values` operator: `**x` == `expand_values(x)`
2026-06-05 11:42:08 +01:00
gingerBill
a479eb7775 Support @(link_section=<string>) for procedures 2026-06-02 13:09:40 +01:00
gingerBill
fb8a9d0839 Support ** as expand_values operator: **x == expand_values(x) 2026-05-25 10:28:15 +01:00
kalsprite
98d6e0c26a ARM chunking logic, improved docs 2026-05-20 17:55:29 -07:00
kalsprite
ae4b94fbd0 fix overloaded call 2026-05-20 16:57:05 -07:00
gingerBill
a91725f305 Add simd.interleave + simd.deinterleave 2026-05-19 21:32:09 +01:00
gingerBill
a3240373ac Allow simd.(reduce_any|reduce_all) to work with #simd integers 2026-05-19 15:33:45 +01:00
gingerBill
7b97530443 Add intrinsics.c_var_* 2026-04-28 15:00:53 +01:00
gingerBill
68942ce53d Genericize simd_approx_recip_(sqrt) to allow for AVX and AVX512 intrinsics if enabled 2026-04-08 10:56:52 +01:00
gingerBill
6f7226e692 Add intrinsics.simd_pairwise_(add|sub) 2026-04-07 15:45:50 +01:00
gingerBill
6e09ce9a04 intrinsics.to_bits_signed; simd.signbit 2026-04-07 15:25:41 +01:00
gingerBill
5de18d30f3 Add intrinsics.simd_approx_recip and intrinsics.simd_approx_recip_sqrt 2026-04-07 14:35:04 +01:00
gingerBill
885db93e20 Add intrinsics.simd_sums_of_n 2026-04-07 13:18:03 +01:00
gingerBill
30b6fab120 Fix simd.scatter/simd.gather for LLVM 22 2026-04-07 11:46:57 +01:00