Commit Graph

18926 Commits

Author SHA1 Message Date
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
gingerBill
bd95d2ae66 Add asm directive #align N 2026-08-17 13:32:28 +01:00
gingerBill
55377f71ef Support #byte directive for asm templates 2026-08-17 13:21:40 +01:00
gingerBill
c2dfcb3c28 Remove debug printing 2026-08-17 13:10:28 +01:00
gingerBill
dd5c2f98fd Always require the results of asm templates 2026-08-17 13:05:33 +01:00
gingerBill
5fe724bff3 Remove f suffix e.g. %flags.z rather than %flags.zf 2026-08-17 13:00:18 +01:00
gingerBill
d1f561ec88 Correct instruction_size_suffix so that the correct suffix can be selected for the instruction to adhere to AT&T syntax 2026-08-17 12:59:23 +01:00
gingerBill
db94c5a6cb Begin work in %flags.zf et al 2026-08-17 12:25:17 +01:00
Jeroen van Rijn
a0b475eef9 Merge pull request #7361 from ssenthilnathan3/fix/recursive-soa-sigbus
Fix: SIGBUS/segfault when compiling recursive #soa slice/dynamic array types
2026-08-17 13:16:18 +02:00
gingerBill
344e8afa36 #clobber cc -> #clobber flags 2026-08-17 12:10:08 +01:00
Jeroen van Rijn
e2f1638d4d Merge pull request #7353 from corleypc/modmod-fix
Fixes the %% operator
2026-08-17 13:06:53 +02:00
gingerBill
1f2234a4b2 Merge branch 'master' into bill/inline-asm 2026-08-17 11:44:14 +01:00
gingerBill
8eaa640c02 Merge pull request #7358 from kalsprite/eol_diagnostic_line
fix eol diagnostic
2026-08-17 12:41:41 +02:00
Jeroen van Rijn
ee89002c24 Add more %% tests 2026-08-17 12:40:49 +02: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
gingerBill
bfc945f991 Merge pull request #7355 from samuelgozi/dynamic-arena-reused-block-alignment
mem: Keep Dynamic_Arena allocations aligned after reset
2026-08-17 12:40:14 +02:00
gingerBill
b5a746b9b6 Merge pull request #7359 from kalsprite/min_dep_fixed_capacity_break
checker: add the missing `break` in `add_min_dep_type_info`
2026-08-17 12:39:27 +02:00
gingerBill
2791257e28 Merge pull request #7360 from kalsprite/any_int_range_check
check_expr: range-check a constant passed to an `#any_int` parameter
2026-08-17 12:39:16 +02:00
gingerBill
d3f4d477e5 Merge pull request #7348 from Kelimion/ci-flakiness
Disable Wycheproof on Windows CI
2026-08-17 12:35:19 +02:00