Commit Graph

7017 Commits

Author SHA1 Message Date
gingerBill
085af86dac Remove ' from __odin_entry_point 2026-09-02 12:49:40 +01:00
gingerBill
80fde853f1 Merge pull request #7500 from mocompute/chained-offset-of-disallow
Detect and error on chained offset_of expressions.
2026-09-02 11:42:19 +01:00
gingerBill
f04f867b28 Fix local struct literals losing fields set through using 2026-09-02 11:37:17 +01:00
mo
278c7dd751 Detect and error on chained offset_of expressions.
Fixes #5851.

This disallows expressions like `offset_of(a.b.c)`.
2026-09-02 13:04:10 +12:00
Jeroen van Rijn
a2fb372b76 Merge pull request #7485 from Yawning/fix/linker-system
src: Use `posix_spawnp` instead of `system()` when invoking the linker
2026-09-01 03:02:46 -07:00
gingerBill
9a425de2ae Merge pull request #7465 from odin-lang/bill/arm64-clobber
asm: arm64 support
2026-09-01 10:22:08 +01:00
gingerBill
8181e3564f Add asm syntax to core:odin/parser 2026-08-31 19:17:21 +01:00
gingerBill
7dd33b5e48 Implement #pre/#post` memory operand forms 2026-08-31 18:31:37 +01:00
gingerBill
4f8a91092b Add more MOV forms; fix liveness check for lanes 2026-08-31 17:51:24 +01:00
gingerBill
07b5c2ee0f Support enable_target_feature and require_target_feature for asm templates 2026-08-31 16:39:17 +01:00
gingerBill
df3b988db8 asm: add new operand kind for lanes (arm64) 2026-08-31 15:45:44 +01:00
gingerBill
7954321b78 Update instruction_table.odin with missing MOV forms 2026-08-31 15:19:27 +01:00
gingerBill
c789811597 Add a form transfer bytes check for memory operands 2026-08-31 15:15:46 +01:00
Jeroen van Rijn
de2b46961a Merge pull request #7468 from mac119/fix-7421-tagless-switch-duplicate-cases
checker: Do not deduplicate cases in tagless switches
2026-08-31 04:06:08 -07:00
gingerBill
af0842343d Work on trying to get the arm64 asm backend working 2026-08-31 11:02:06 +01:00
gingerBill
3d8437d152 Get the ARM64 frontend working 2026-08-31 10:23:09 +01:00
gingerBill
210defa21b Handle system registers and conditional branching instructions correctly. 2026-08-31 09:55:01 +01:00
Yawning Angel
9aa84b5e3a src: Use posix_spawnp instead of system() when invoking the linker
Thanks to Matteo on discord for pointing this out.
2026-08-31 04:40:04 +09:00
gingerBill
a0bfd7da55 Mock out llvm_backend_asm.cpp for arm64 2026-08-30 18:16:04 +01:00
gingerBill
7773596beb Handle status snapshot style instructions 2026-08-30 18:03:26 +01:00
gingerBill
80e9ec0e53 Reformat the instruction table 2026-08-29 19:38:44 +01:00
gingerBill
db0cd79633 Use thread_safe_file 2026-08-27 15:26:29 +01:00
gingerBill
938257d425 Add -strict-style-packages 2026-08-27 15:20:02 +01:00
gingerBill
b12463c4e5 Update tables 2026-08-27 15:06:35 +01:00
gingerBill
3b3bba54a8 Update for new mnemonics 2026-08-27 15:06:12 +01:00
gingerBill
d8cea6ceb0 asm: semantic checking for v[idx] (arm style) 2026-08-27 13:02:10 +01:00
gingerBill
3bb6254857 asm: Support v[idx] operand _syntax_ 2026-08-27 12:01:10 +01:00
gingerBill
87b9b39749 Begin integrating arm64 into the Odin compiler 2026-08-27 11:39:23 +01:00
gingerBill
d805730c67 Correct cpp-gen.odin files 2026-08-27 10:59:54 +01:00
leo119
24cb1abf29 checker: Do not deduplicate cases in tagless switches
Tagless switch cases are ordered predicates, so distinct constant conditions may fold to the same Boolean value. Restrict duplicate-case tracking to explicitly tagged switches and add positive and negative regression coverage for issue #7421.
2026-08-27 14:53:54 +08:00
gingerBill
dcb66ab09d Merge branch 'master' into const_array_broadcast 2026-08-26 08:42:51 +01:00
gingerBill
7bd6d16d76 Merge pull request #7438 from kalsprite/asm_doc_category
Give asm templates a documentation category instead of a blank header and a null `%s`
2026-08-26 08:41:20 +01:00
gingerBill
dc8b9584ed Merge pull request #7458 from kalsprite/swizzle_multi_assign
Fix a swizzle target in a multi-assignment reading an already-written source
2026-08-26 08:40:42 +01:00
gingerBill
a934751be1 Merge pull request #7435 from kalsprite/asm_group_empty_params
Delete dead code that crashed the checker on an asm template group with no parameters
2026-08-26 08:40:20 +01:00
gingerBill
4c0e5dfdc8 Merge pull request #7460 from kalsprite/const_truncation_sweep
convert constants before narrowing to i64 in the remaining checker sites
2026-08-26 08:39:48 +01:00
kalsprite
7e9ffac5b0 const truncation sweep 2026-08-25 23:27:06 -07:00
kalsprite
c3bc5b69ac Merge branch 'master' into asm_doc_category 2026-08-25 23:08:48 -07:00
kalsprite
3d4fcd3612 merge master 2026-08-25 23:07:38 -07:00
kalsprite
915fc97b5f add missing int 128le 2026-08-25 22:46:30 -07:00
kalsprite
c1aeb47ce5 swizzle target multi-assignment 2026-08-25 22:22:33 -07:00
kalsprite
ae549bf34b broadcast a constant into every array level 2026-08-25 21:47:02 -07:00
gingerBill
96b1b45f69 Merge branch 'master' of https://github.com/odin-lang/Odin 2026-08-25 19:30:50 +01:00
gingerBill
f7f3d3f198 asm: reenable riscv64 2026-08-25 19:30:38 +01:00
gingerBill
073c733dbd Merge pull request #7432 from kalsprite/asm_immediate_constant
Reject a non-constant argument to an  template's  immediate
2026-08-25 16:20:38 +01:00
gingerBill
2214d90997 Merge branch 'master' into bool_comparison_normalise 2026-08-25 15:31:19 +01:00
gingerBill
2f8ddd560b Merge branch 'master' into asm_immediate_constant 2026-08-25 15:28:06 +01:00
gingerBill
ee68d39c20 Merge pull request #7444 from odin-lang/bill/asm-cfg
Inline `asm` templates - CFG based analysis
2026-08-25 15:27:34 +01:00
gingerBill
771cbfa31a Merge pull request #7439 from ssenthilnathan3/fix/proc-literal-type-canonicalization
Fix canonical names for types in procedure literals
2026-08-25 15:12:32 +01:00
gingerBill
65c927841a Merge branch 'master' into bill/asm-cfg 2026-08-25 15:04:39 +01:00
gingerBill
337bb43948 asm: minor cleanups 2026-08-25 13:40:16 +01:00