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