Commit Graph
27 Commits
Author SHA1 Message Date
gingerBill 52ea617143 Minor fixes 2026-08-17 19:20:32 +01:00
gingerBill d0c3b78ece Allow (parent scope) constants within asm templates 2026-08-17 18:56:47 +01:00
gingerBill d71c25dd9b asm: add #skip N and #nop N 2026-08-17 13:36:59 +01:00
gingerBill bd95d2ae66 Add asm directive #align N 2026-08-17 13:32:28 +01:00
gingerBill 55377f71ef Support #byte directive for asm templates 2026-08-17 13:21:40 +01:00
gingerBill c2dfcb3c28 Remove debug printing 2026-08-17 13:10:28 +01:00
gingerBill 5fe724bff3 Remove f suffix e.g. %flags.z rather than %flags.zf 2026-08-17 13:00:18 +01:00
gingerBill d1f561ec88 Correct instruction_size_suffix so that the correct suffix can be selected for the instruction to adhere to AT&T syntax 2026-08-17 12:59:23 +01:00
gingerBill db94c5a6cb Begin work in %flags.zf et al 2026-08-17 12:25:17 +01:00
gingerBill 344e8afa36 #clobber cc -> #clobber flags 2026-08-17 12:10:08 +01:00
gingerBill cb903df235 #side_effects -> #volatile; Remove dead code 2026-08-13 10:03:00 +01:00
gingerBill 4f82bed1f7 Hide debug printing for LLVM's ASM IR 2026-08-13 01:21:38 +01:00
gingerBill 43f078aedc Infer asm #side_effects where possible from the mnemonics 2026-08-12 14:52:37 +01:00
gingerBill ecb4495e81 Clobber manually specified registers 2026-08-12 14:29:59 +01:00
gingerBill 2300a48782 Infer #clobber memory and #clobber cc from the mnemonics directly 2026-08-12 12:45:48 +01:00
gingerBill bef386b1fb Implement asm view-of parameters pred: i64, predb: u8 = pred 2026-08-12 10:33:53 +01:00
gingerBill a9df33e482 Virtualize the suffix handling in the llvm_backend_asm.cpp code 2026-08-12 09:31:52 +01:00
gingerBill 658fa54ee4 Support [base]:u8 type interpretations for memory operands; And determine the correct suffix to use 2026-08-12 09:30:55 +01:00
gingerBill c80fedc070 Support [base + index<<scale] and [base + index>>scale]; Support syntax for [base]:u8 (not implemented yet) 2026-08-12 09:03:31 +01:00
gingerBill 6a20d21358 Add extra checks for asm memory operand scale in frontend and backend 2026-08-11 16:00:03 +01:00
gingerBill ce6346a20f Check immediates if they support the range or are not allowed (e.g. floats) 2026-08-11 14:52:21 +01:00
gingerBill 6b534a318e Begin abstracting out the platform specific code into a class
I know... a class. If only C++ had a nice way to package different things like Odin itself.
2026-08-10 13:41:58 +01:00
gingerBill 768fedcff4 Minor fixes to labels; restrict to amd64 usage 2026-08-10 13:21:14 +01:00
gingerBill cee5bd79e0 Fix pinning logic for asm registers 2026-08-10 12:06:28 +01:00
gingerBill b4da67c6af Ignore the AsmTemplateEntityDecl_Memory parameters for the time being 2026-08-09 23:51:14 +01:00
gingerBill 22f2e2ac78 Try to lower to LLVM IR from Odin's asm template syntax 2026-08-09 23:38:36 +01:00
gingerBill 036e38442b Begin work on lb_emit_asm_template_call 2026-08-09 21:55:36 +01:00