Commit Graph

91 Commits

Author SHA1 Message Date
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
gingerBill
229a5164a7 Add warning for unused lables in asm templates 2026-08-19 13:17:10 +01:00
gingerBill
5917d5db6e Add error message for immediate-operand specificity 2026-08-19 13:12:15 +01:00
gingerBill
0c42447192 Add pin class/width and tie class checks 2026-08-19 13:11:08 +01:00
gingerBill
75c91feb36 Check for output parameters not used but pinned; Check for templates with observable effects but not marked as #volatile 2026-08-19 12:56:03 +01:00
gingerBill
8956deb322 Check for implicitly read registers which have not be handled 2026-08-19 12:29:54 +01:00
gingerBill
6d903e9bde Remove implicit_rd from clobber 2026-08-19 11:56:07 +01:00
gingerBill
8d0cc4d64b Clobber implicit_wr and implicit_rd 2026-08-19 11:03:50 +01: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
8e807fb7aa Use new clobber forms in check_asm.cpp 2026-08-18 11:23:20 +01:00
gingerBill
582ff64bee General clean up of llvm_backend_asm.cpp code 2026-08-17 22:58:51 +01:00