Commit Graph
872 Commits
Author SHA1 Message Date
gingerBill 2b90b616e1 Add -vet-when-shadowing; Resolve global whens and foreign blocks on demand via name placeholders 2026-10-01 16:28:12 +01:00
gingerBill 5a4e0de0cc Merge pull request #7594 from bplu4t2f/fix-7583
Fix 7583: -strict-style requires comma before newline after proc parameters which have a default value.
2026-09-29 13:11:39 +01:00
Jeroen van Rijn 6332303a0e Add -file suggestion.
When `main` is duplicated or the package names differ, suggest it may be a single `-file` package.
2026-09-24 12:52:45 +02:00
bplu4t2f a7b67e4473 -strict-style requires comma before newline after proc parameters which have a default value (#7583) 2026-09-19 12:16:55 +02:00
Krzesimir Nowak 3fa08eb9d5 Fix side_effects vs volatile typo in error message 2026-09-15 21:26:41 +02:00
gingerBill e5bce4b2ad asm: add exceptions to the whole descriptor-table ops (lgdt/lidt/sgdt/sidt) 2026-09-08 10:05:54 +01:00
gingerBill 2a48d1f3be asm: Support add x, y, z<<1 style syntax for the arm64 target 2026-09-08 09:16:45 +01:00
gingerBill 654b3a8895 asm: Generalize memory operand syntax to a flat term list
Parse `[...]` as `term { (+|-) term }` where each term is `operand [ (*|<<|>>) operand ]`.

This allows for constant-only terms to be folded in-place, especially for things like displacement.

e.g. `[p + 8*32]` means `[p + 256]`.

Term order is also free: `[8 + p]` == `[p + 8]`
2026-09-07 18:39:59 +01:00
gingerBill 94aba2bd6b Support #reserve for asm registers 2026-09-07 14:43:58 +01: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 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 3bb6254857 asm: Support v[idx] operand _syntax_ 2026-08-27 12:01:10 +01:00
gingerBill a2d9ca8697 Remove unneeded hash maps when you can store the data directly on the nodes 2026-08-24 22:25:53 +01:00
gingerBill 3e159a4e10 Add #no_init suffix directive for asm specifications. 2026-08-24 19:10:32 +01:00
gingerBill c3c3aa1533 Add #pure directive for asm templates 2026-08-24 11:46:07 +01:00
kalsprite ef1c5fe675 Fix compiler segfault on a bare in a type position call 2026-08-21 17:54:13 -07:00
gingerBill c26aa48ca5 Support + - and ~ unary operators for asm operands 2026-08-21 16:01:49 +01:00
gingerBill 7a7bfea0bd Begin work on pseudo mnemonics in the checker 2026-08-20 19:12:44 +01:00
gingerBill 4e0fe5cf4f Allow parsing of asm instructions being a keyword 2026-08-20 09:37:34 +01:00
kalsprite f17c86d936 diagnostics: let compiler check error() fmt strings + fixes 2026-08-19 15:39:39 -07: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 c3b2029f64 Support asm template groups 2026-08-17 19:54:21 +01:00
gingerBill 55377f71ef Support #byte directive for asm templates 2026-08-17 13:21:40 +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 344e8afa36 #clobber cc -> #clobber flags 2026-08-17 12:10:08 +01:00
gingerBill 1f2234a4b2 Merge branch 'master' into bill/inline-asm 2026-08-17 11:44:14 +01:00
kalsprite 35061af11b fix eol diagnostic 2026-08-16 17:31:59 -07:00
gingerBill cb903df235 #side_effects -> #volatile; Remove dead code 2026-08-13 10:03:00 +01:00
gingerBill 3453643c11 Improve unquote_string_triple to give better error messages on invalid literals 2026-08-13 00:34:28 +01:00
gingerBill c085a46185 Move #side_effects and #align_stack to the specification list 2026-08-12 23:40:57 +01:00
gingerBill ae2c7ead48 Support triple backtick strings 2026-08-12 16:08:58 +01:00
gingerBill 5197806f88 Implement triple quote strings to allow for easier templating purposes 2026-08-12 15:42:36 +01:00
gingerBill db41921a16 Mock out p0: u64 = %rax, p0b: u8 = p0 2026-08-12 10:20:11 +01:00
gingerBill a87f5dd5e9 Clean up parsing for AstAsmMemoryOperand 2026-08-12 09:38:55 +01:00
gingerBill 612b25a425 Handle disp parameter correctly 2026-08-12 09:34:16 +01:00
gingerBill 658fa54ee4 Support [base]:u8 type interpretations for memory operands; And determine the correct suffix to use 2026-08-12 09:30:55 +01:00
gingerBill c80fedc070 Support [base + index<<scale] and [base + index>>scale]; Support syntax for [base]:u8 (not implemented yet) 2026-08-12 09:03:31 +01:00
gingerBill 768fedcff4 Minor fixes to labels; restrict to amd64 usage 2026-08-10 13:21:14 +01:00
gingerBill cee5bd79e0 Fix pinning logic for asm registers 2026-08-10 12:06:28 +01:00
gingerBill 036e38442b Begin work on lb_emit_asm_template_call 2026-08-09 21:55:36 +01:00
gingerBill 5ac28cdecd Begin work on semantically type checking asm templates 2026-08-09 18:24:56 +01:00
gingerBill 5e49e6c1a5 Parse asm template 2026-08-09 15:17:57 +01:00
gingerBill d059dafb09 Merge pull request #7210 from BigBoyBarney/vet-packages
Fix `-vet-packages` not working in certain cases
2026-08-05 14:33:12 +02:00
Sylphrena 5629c13aa0 Fix -vet-packages not working in certain cases 2026-08-05 14:06:13 +02:00