Commit Graph
129 Commits
Author SHA1 Message Date
gingerBill 773383879a Fix #7521 - check for target feature for parameters not being enabled and then labelled correctly 2026-09-07 13:04:41 +01:00
gingerBill 3f873d656c Check for non allocateable registers and disallow them to be pinned to output parameters 2026-09-07 12:26:38 +01:00
gingerBill c7201725d5 Support %rip relative memory operands for amd64 [.label] 2026-09-03 18:09:23 +01:00
gingerBill 7dd33b5e48 Implement #pre/#post` memory operand forms 2026-08-31 18:31:37 +01:00
gingerBill 4f8a91092b Add more MOV forms; fix liveness check for lanes 2026-08-31 17:51:24 +01:00
gingerBill 07b5c2ee0f Support enable_target_feature and require_target_feature for asm templates 2026-08-31 16:39:17 +01:00
gingerBill df3b988db8 asm: add new operand kind for lanes (arm64) 2026-08-31 15:45:44 +01:00
gingerBill c789811597 Add a form transfer bytes check for memory operands 2026-08-31 15:15:46 +01:00
gingerBill af0842343d Work on trying to get the arm64 asm backend working 2026-08-31 11:02:06 +01:00
gingerBill 3d8437d152 Get the ARM64 frontend working 2026-08-31 10:23:09 +01:00
gingerBill 210defa21b Handle system registers and conditional branching instructions correctly. 2026-08-31 09:55:01 +01:00
gingerBill 3b3bba54a8 Update for new mnemonics 2026-08-27 15:06:12 +01:00
gingerBill d8cea6ceb0 asm: semantic checking for v[idx] (arm style) 2026-08-27 13:02:10 +01:00
gingerBill 87b9b39749 Begin integrating arm64 into the Odin compiler 2026-08-27 11:39:23 +01:00
gingerBill d805730c67 Correct cpp-gen.odin files 2026-08-27 10:59:54 +01:00
gingerBill f7f3d3f198 asm: reenable riscv64 2026-08-25 19:30:38 +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 173443cdd1 Add read-before-write for flags, and fix bugs caused by typos 2026-08-25 10:26:27 +01:00
gingerBill 6f65d775c2 Re-add check_asm_cfg_liveness 2026-08-25 09:43:31 +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 e093329012 asm: add a backward liveness check for the CFG 2026-08-24 23:35:41 +01:00
gingerBill a9068261bf Fix view-width testing for unpinned parameters in the lattice 2026-08-24 23:13:12 +01:00
gingerBill 032566714c asm: correctly handle flags in the CFG 2026-08-24 22:56:49 +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
gingerBill b69e61983a Mock out the data structures for working on a CFG for asm 2026-08-24 19:52:56 +01:00
gingerBill 3e159a4e10 Add #no_init suffix directive for asm specifications. 2026-08-24 19:10:32 +01:00
gingerBill dfa473f2c8 Minor grammar fix in error message 2026-08-24 18:20:12 +01:00
gingerBill 9ae9a9bf99 asm: Add support for constraint checks such as division by zero or overshifting 2026-08-24 18:18:28 +01:00
gingerBill 9367fa2ec2 Even more general clean ups 2026-08-24 16:58:37 +01:00
gingerBill 670b996f91 Minor clean ups 2026-08-24 16:43:36 +01:00
gingerBill 13558978be Fix typo 2026-08-24 16:40:02 +01:00
gingerBill 427d300562 asm: minor cleanups 2026-08-24 16:39:23 +01:00
gingerBill 171bdaf378 asm: check for undefined output parameters 2026-08-24 16:25:00 +01:00
gingerBill e59da59826 Add support to check if an output is being read before it is written to; fix -vet-unused on input parameters 2026-08-24 16:14:25 +01:00
gingerBill 2f588e0329 Correct clobbering for instructions which did not write actually write to memory 2026-08-24 12:20:45 +01:00
gingerBill 7ebc5c462e Correct #pure checking for internal branches and effect volatility 2026-08-24 11:57:34 +01:00
gingerBill c3c3aa1533 Add #pure directive for asm templates 2026-08-24 11:46:07 +01:00
gingerBill 2f2ab370e0 Fix the actual check for reading from a register that has not be written to yet 2026-08-24 10:37:59 +01:00
gingerBill cebceb9bb2 Merge branch 'master' into asm_rip_width 2026-08-24 09:31:54 +01:00
kalsprite b6c64c28b5 Diagnose in an asm template instead of aborting with SIGILL 2026-08-23 22:36:57 -07:00
kalsprite deb45f3e6a asm named slots 2026-08-23 21:34:31 -07:00
gingerBill 4247507dd5 - to / 2026-08-22 19:39:10 +01:00
gingerBill 7bd1c9d160 Improve implicit register printing for read-writes, writes, reads 2026-08-22 19:36:47 +01:00
gingerBill a2013cfccd Trim trailing whitespace on pretty printed forms 2026-08-22 19:00:00 +01:00
gingerBill 89cbcf958d For forms which only take immediates or nothing at all, add a comment stating what they implicitly read and write from 2026-08-22 18:59:14 +01:00
gingerBill 0ba2328c32 Remove debug code 2026-08-22 18:48:13 +01:00
gingerBill 0427b18d70 Simplify error block logic for printing mnemonic forms 2026-08-22 18:44:33 +01:00