gingerBill
9870cd4c36
Merge pull request #7271 from odin-lang/bill/inline-asm
...
`asm` templates
2026-08-18 19:19:40 +02:00
Jeroen van Rijn
6b661becae
Merge pull request #7375 from thetarnav/remove-inline-keywords-core-odin
...
Remove `inline` and `no_inline` keywords from `core:odin`
2026-08-18 19:03:00 +02:00
thetarnav
f1bbd8fe49
Remove inline and no_inline keywords from core:odin
...
Odin uses `#force_inline` and `#force_no_inline` directives, not
keywords.
The cpp parser does not define them as keywords:
/home/thetarnav/Projects/odin/src/tokenizer.cpp:86
Nor does the grammar spec: https://odin-lang.org/spec/grammar/#keywords
2026-08-18 18:25:22 +02:00
gingerBill
27d00c3c1c
LLVM asm backend: %gs:disp() -> %gs:disp
2026-08-18 17:18:38 +01:00
Jeroen van Rijn
a75be8e9a5
Merge pull request #7374 from nickav/nickav/fix-windows-file-notify-casing
...
fix FILE_NOTIFY_INFORMATION struct member casing
2026-08-18 18:10:15 +02:00
Nick Aversano
54b818e9a7
fix FILE_NOTIFY_INFORMATION struct member casing
2026-08-18 11:19:10 -04:00
gingerBill
14184744ee
Add missing x86.clobber_forms.bin
2026-08-18 15:13:37 +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
0bc9e60725
Use new inline asm for __chkstk on Windows AMD64
2026-08-18 14:44:59 +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
8d33a47fab
Improve comment for the CLOBBER_TABLE
2026-08-18 11:54:45 +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
35ae861ff6
Use number rather than enum
2026-08-18 11:28:54 +01:00
gingerBill
8e807fb7aa
Use new clobber forms in check_asm.cpp
2026-08-18 11:23:20 +01:00
gingerBill
b1b08c13c0
Update clobber table to encode the clobbering for each of the forms
2026-08-18 11:20:30 +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
Jeroen van Rijn
ffbaafd39c
Merge pull request #7366 from Kelimion/fix-7365
...
Fix #7365
2026-08-18 02:04:53 +02:00
Jeroen van Rijn
7140c5bccb
Fix #7365
...
Fixes #7365
2026-08-18 01:53:55 +02:00
gingerBill
582ff64bee
General clean up of llvm_backend_asm.cpp code
2026-08-17 22:58:51 +01:00
gingerBill
8636070fc9
Merge pull request #7364 from Ruan-pysoft/master
...
Fix slice.simple_equal misbehaviour on empty slice with non-nil data
2026-08-17 23:36:51 +02:00
Ruan
ad8cfbeb73
Fix slice.simple_equal misbehaviour on empty slice with non-nil data
...
Before this change, the following code:
```odin
package strconcat
import "core:fmt"
import "core:slice"
main :: proc() {
a: [1]u8
s1: []u8 = {}
s2: []u8 = a[:0]
fmt.printfln("s1={} len(s1)={} raw_data(s1)={}", s1, len(s1), raw_data(s1))
fmt.printfln("s2={} len(s2)={} raw_data(s2)={}", s2, len(s2), raw_data(s2))
fmt.printfln("equal(s1, s2): {}", slice.equal(s1, s2))
fmt.printfln("simple_equal(s1, s2): {}", slice.simple_equal(s1, s2))
}
```
Produced the following output on my machine:
```
s1=[] len(s1)=0 raw_data(s1)=<nil>
s2=[] len(s2)=0 raw_data(s2)=0x7FFFED64F74F
equal(s1, s2): true
simple_equal(s1, s2): false
```
This commit fixes simple_equal's behaviour to match that of equal.
2026-08-17 22:38:40 +02: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
e2e4a61003
Remove suffixes
2026-08-17 19:29:42 +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
Jeroen van Rijn
ad17496e4a
Merge pull request #7363 from PavLL/fix-wrong-bounds-check-directive
...
core/slice/slice.odin: fix slice.get doing unnecessary bounds check
2026-08-17 19:04:01 +02:00
pav
2c7b3e6780
fix slice.get doing unnecessary bounds check
2026-08-17 18:40:12 +02:00
gingerBill
645b57be9f
Merge pull request #7327 from kalsprite/abi_conformance
...
ABI Conformance Harness + Fixes
2026-08-17 16:28:01 +02:00
gingerBill
d71c25dd9b
asm: add #skip N and #nop N
2026-08-17 13:36:59 +01:00