From 27d00c3c1cfceb9b174eb61c2badea419f91912a Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 18 Aug 2026 17:18:38 +0100 Subject: [PATCH] LLVM asm backend: `%gs:disp()` -> `%gs:disp` --- src/llvm_backend_asm.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/llvm_backend_asm.cpp b/src/llvm_backend_asm.cpp index 2e5e93d00..972d763ea 100644 --- a/src/llvm_backend_asm.cpp +++ b/src/llvm_backend_asm.cpp @@ -1,3 +1,5 @@ +#define LLVM_ASM_DEBUG_PRINT false + struct lbAsmGenerate { Entity * tmpl_entity; AstAsmTemplate * tmpl_node; @@ -306,6 +308,10 @@ struct lbAsmGenerate_amd64 : lbAsmGenerate { asm_string = this->write_operand(asm_string, op_number, mem_op->disp, disp_flags); } + if (mem_op->base == nullptr && mem_op->index == nullptr) { + GB_ASSERT(mem_op->scale == nullptr); + return asm_string; + } asm_string = gb_string_appendc(asm_string, "("); if (mem_op->base != nullptr) { asm_string = this->write_operand(asm_string, op_number, mem_op->base, flags); @@ -668,7 +674,7 @@ struct lbAsmGenerate_amd64 : lbAsmGenerate { LLVMValueRef call = LLVMBuildCall2(p->builder, fn_ty, ia, call_args.data, cast(unsigned)call_args.count, ""); - if (false) { + if (LLVM_ASM_DEBUG_PRINT) { // DEBUG PRINT!!! // DEBUG PRINT!!! // DEBUG PRINT!!!