Commit Graph
20 Commits
Author SHA1 Message Date
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 210defa21b Handle system registers and conditional branching instructions correctly. 2026-08-31 09:55:01 +01:00
gingerBill 7773596beb Handle status snapshot style instructions 2026-08-30 18:03:26 +01:00
gingerBill 337bb43948 asm: minor cleanups 2026-08-25 13:40:16 +01:00
gingerBill b4cf9b14bd asm: Implement sub-register width analysis 2026-08-25 12:17:06 +01:00
gingerBill 160a5ffe5c Improve error message for which status flags were not set but expected. 2026-08-25 11:21:57 +01:00
gingerBill 173443cdd1 Add read-before-write for flags, and fix bugs caused by typos 2026-08-25 10:26:27 +01:00
gingerBill c200bfc189 Check for infinite cycles in the CFG and report if the procedure is not marketed as diverging 2026-08-25 09:55:48 +01:00
gingerBill 6f65d775c2 Re-add check_asm_cfg_liveness 2026-08-25 09:43:31 +01:00
gingerBill b1a81cf6f3 asm: Improve warnings for unreachable blocks 2026-08-24 23:56:19 +01:00
gingerBill 13394e8bcd asm: remove liveness backwards check as it causes way too many false positives 2026-08-24 23:49:23 +01:00
gingerBill 434d1f6cbc asm: implement liveness stale checks 2026-08-24 23:40:51 +01:00
gingerBill f73a5295d2 Minor cleanup 2026-08-24 23:37:01 +01:00
gingerBill e093329012 asm: add a backward liveness check for the CFG 2026-08-24 23:35:41 +01:00
gingerBill 032566714c asm: correctly handle flags in the CFG 2026-08-24 22:56:49 +01:00
gingerBill 477fd7467b Ignore flag-pinned output 2026-08-24 22:32:48 +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 7fcf65d2c2 asm: General clean up of the CFG code and remove redundant calculations 2026-08-24 22:17:31 +01:00
gingerBill 322f59dae0 Implement a CFG for the assembler to improve the soundness of the checks 2026-08-24 21:49:32 +01:00