Commit Graph
103 Commits
Author SHA1 Message Date
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
gingerBill f3cbeb909c Add some capitalization 2026-08-22 18:40:48 +01:00
gingerBill eb380fc4fa Give good error messages for possible forms for the mnemonics 2026-08-22 18:39:18 +01:00
gingerBill cbbb84cd2b Begin work on printing all of the forms of a specific mnemonic 2026-08-22 17:41:25 +01:00
gingerBill 629f7b5098 Support all pointer-like types not just actual pointers 2026-08-21 16:27:46 +01:00
gingerBill c26aa48ca5 Support + - and ~ unary operators for asm operands 2026-08-21 16:01:49 +01:00
gingerBill c6a4dd08fc Add typename to keep clang happy 2026-08-21 15:57:45 +01:00
gingerBill 83f5cd8767 Add extra check for scratch parameters with no other parameters 2026-08-21 15:45:23 +01:00
gingerBill 648c418fc4 Restrict riscv to only allow [base + disp] (i.e. disallow index*scale style things) 2026-08-21 14:31:58 +01:00
gingerBill 4a4a5045f8 Check for float register width exactly for risc-v frontend 2026-08-21 12:19:02 +01:00
gingerBill a604ddceb1 Support pseudo macro mnemonics (for RISC-V) in the frontend 2026-08-21 11:47:41 +01:00
gingerBill d0fb380c20 Support riscv _aq _rl _aqrl suffixes for mnemonics 2026-08-21 01:05:47 +01:00
gingerBill acb6c1408f Remove unneeded typename usage 2026-08-21 00:39:26 +01:00
gingerBill de8c0dc4fe Fix register width test for risc-v, and improve operand slot type inference for risc-v 2026-08-21 00:38:34 +01:00
gingerBill 09204e8982 Correct risc-v aliases 2026-08-20 19:48:30 +01:00
gingerBill 7a7bfea0bd Begin work on pseudo mnemonics in the checker 2026-08-20 19:12:44 +01:00
gingerBill 84f9bc76f9 Mockout inline asm for riscv 2026-08-20 14:42:42 +01:00
gingerBill b82fa18cb3 Fix typo 2026-08-20 10:16:34 +01:00
gingerBill 5d873a4b8c Update assert 2026-08-20 09:58:32 +01:00
gingerBill 63918fe1fe Remove debug code 2026-08-20 09:54:50 +01:00
gingerBill baae2636b8 Add support for x86 mnenomics in and out 2026-08-20 09:53:28 +01:00
gingerBill 7a6f70ba31 False positives: Ignore the out pinned parameters for the time being 2026-08-19 17:34:14 +01:00
gingerBill 2873e323c7 Fix #align_stack redundancy checks 2026-08-19 14:52:35 +01:00
gingerBill 5e165d2393 Add even more diagnostics for pinned registers; and begin work on redundant #align_stack checks 2026-08-19 14:50:08 +01:00
gingerBill 7638ac1bd4 Add more checks for flag clobbering 2026-08-19 14:09:46 +01:00
gingerBill adbd1bd930 Add code (but disablled) to warn for redundant #clobber and #volatile 2026-08-19 13:56:15 +01:00
gingerBill d4f81b5220 Add checks to see if diverging asm templates are actually diverging 2026-08-19 13:51:28 +01:00