Commit Graph

6824 Commits

Author SHA1 Message Date
gingerBill
d4f81b5220 Add checks to see if diverging asm templates are actually diverging 2026-08-19 13:51:28 +01:00
gingerBill
229a5164a7 Add warning for unused lables in asm templates 2026-08-19 13:17:10 +01:00
gingerBill
5917d5db6e Add error message for immediate-operand specificity 2026-08-19 13:12:15 +01:00
gingerBill
0c42447192 Add pin class/width and tie class checks 2026-08-19 13:11:08 +01:00
gingerBill
75c91feb36 Check for output parameters not used but pinned; Check for templates with observable effects but not marked as #volatile 2026-08-19 12:56:03 +01:00
gingerBill
8956deb322 Check for implicitly read registers which have not be handled 2026-08-19 12:29:54 +01:00
gingerBill
6d903e9bde Remove implicit_rd from clobber 2026-08-19 11:56:07 +01:00
gingerBill
4cf22b3efa Merge pull request #7380 from dbriemann/dlb/vpdpwssd
Add AVX-512 VNNI VPDPWSSD support to inline assembly
2026-08-19 12:53:41 +02:00
Jeroen van Rijn
ba9011be8b Merge pull request #7381 from Kelimion/fix-7379
Let FreeBSD use default `gb_copy_file` path
2026-08-19 12:16:16 +02:00
gingerBill
8d0cc4d64b Clobber implicit_wr and implicit_rd 2026-08-19 11:03:50 +01:00
Jeroen van Rijn
910a64983d Remove duplicated size 2026-08-19 11:58:48 +02:00
gingerBill
ec81477af6 Merge branch 'master' of https://github.com/odin-lang/Odin 2026-08-19 10:42:52 +01:00
Jeroen van Rijn
f52df84ead Let FreeBSD use default gb_copy_file path
Also add some more error handling to the Linux path.

Fixes #7379
2026-08-19 10:34:18 +02:00
David Linus Briemann
6e1ae963a6 fix asm template generator lifetime 2026-08-19 09:46:10 +02:00
David Linus Briemann
36af738347 core:rexcode: regenerate x86 encoding tables 2026-08-19 09:09:58 +02:00
Jeroen van Rijn
ec4dd3c959 Fix #7377
Allow `(-a).x` and `(+a).x` on a Vec2

Fixes #7377
2026-08-19 00:39:55 +02:00
gingerBill
4648a78168 Fix #7376 2026-08-18 22:07:24 +01:00
gingerBill
9870cd4c36 Merge pull request #7271 from odin-lang/bill/inline-asm
`asm` templates
2026-08-18 19:19:40 +02:00
gingerBill
27d00c3c1c LLVM asm backend: %gs:disp() -> %gs:disp 2026-08-18 17:18:38 +01:00
gingerBill
d06c25cada Restrict usage of asm templates to be declarations or called directly 2026-08-18 15:01:49 +01:00
gingerBill
a86e523053 Allow for inlineable asm calls 2026-08-18 14:57:34 +01:00
gingerBill
fd9ccd7b10 Support segment overrides on asm memory operands 2026-08-18 14:44:24 +01:00
gingerBill
12c89ee2bf Allow for [base - disp] 2026-08-18 14:11:01 +01:00
gingerBill
6e17e7a2de Add missing x86 instructions 2026-08-18 13:19:23 +01:00
gingerBill
e0d8300399 Keep compiler happy 2026-08-18 11:58:49 +01:00
gingerBill
18df1ed23e Correct clobber_table.odin 2026-08-18 11:44:35 +01:00
gingerBill
80d7f6462a Minor clean up 2026-08-18 11:33:49 +01:00
gingerBill
8e807fb7aa Use new clobber forms in check_asm.cpp 2026-08-18 11:23:20 +01:00
gingerBill
87097641e3 Merge pull request #7372 from kalsprite/abs_constant_range
check_builtin: range-check the constant `abs` folds
2026-08-18 12:05:28 +02:00
gingerBill
b1042f6806 Merge pull request #7371 from kalsprite/bedrock_map_guard
checker: do not register map runtime dependencies under bedrock
2026-08-18 11:56:15 +02:00
gingerBill
9a98b080ca Merge pull request #7369 from kalsprite/bare_builtin_as_value
check_stmt: reject a built-in procedure assigned to
2026-08-18 11:54:55 +02:00
gingerBill
420c1cb2f2 Merge pull request #7368 from kalsprite/riscv_coerce_offsets_slice
riscv64: use a Slice for the coerce offsets + missed arm in riscv ABI
2026-08-18 11:54:39 +02:00
kalsprite
8189bb9730 abs const fold 2026-08-17 22:41:22 -07:00
kalsprite
0ef3d96724 fix reinterpretation on riscv 2026-08-17 21:53:37 -07:00
kalsprite
71d8e79806 checker: do not register map runtime dependencies under 2026-08-17 20:22:25 -07:00
kalsprite
364a76e8e9 check_stmt: reject a built-in procedure assigned to 2026-08-17 19:08:13 -07:00
Jeroen van Rijn
0be39571f6 Merge pull request #7367 from kalsprite/c_vararg_diagnostics
c_vararg: fix c_va_start guard and c_va_arg format mismatch
2026-08-18 03:57:34 +02:00
kalsprite
c6fcad51f8 riscv64: use a Slice for the coerce offsets 2026-08-17 18:54:58 -07:00
kalsprite
c34ae95e8a c_va_start: test the operand it just checked; c_va_arg: drop the unfed verb 2026-08-17 18:34:09 -07:00
gingerBill
582ff64bee General clean up of llvm_backend_asm.cpp code 2026-08-17 22:58:51 +01:00
gingerBill
77bedf9947 Fix scratch register pinning 2026-08-17 21:37:03 +01:00
gingerBill
a2bcf3177a Improve error messages for register class printing 2026-08-17 21:10:24 +01:00
gingerBill
ad1ef6328d Remove debug print 2026-08-17 19:58:00 +01:00
gingerBill
6646a7b38e Remove redundant code 2026-08-17 19:57:21 +01:00
gingerBill
2738ff640d Minor text fix 2026-08-17 19:56:03 +01:00
gingerBill
c3b2029f64 Support asm template groups 2026-08-17 19:54:21 +01:00
gingerBill
8f2a4346fc Handle _SSE edge cases 2026-08-17 19:31:38 +01:00
gingerBill
52ea617143 Minor fixes 2026-08-17 19:20:32 +01:00
gingerBill
d0c3b78ece Allow (parent scope) constants within asm templates 2026-08-17 18:56:47 +01:00
gingerBill
645b57be9f Merge pull request #7327 from kalsprite/abi_conformance
ABI Conformance Harness + Fixes
2026-08-17 16:28:01 +02:00