{arm,i386,riscv64}-asm.c: fix generic operand modifier 'n' not negating

This commit is contained in:
Sigrid Solveig Haflínudóttir 2026-07-24 19:22:56 +02:00
parent d9d02c5640
commit 85ba3ae8f1
3 changed files with 4 additions and 4 deletions

View File

@ -2631,7 +2631,7 @@ ST_FUNC void subst_asm_operand(CString *add_str, SValue *sv, int modifier)
val = sv->c.i; val = sv->c.i;
if (modifier == 'n') if (modifier == 'n')
val = -val; val = -val;
cstr_printf(add_str, "%d", (int) sv->c.i); cstr_printf(add_str, "%d", val);
no_offset:; no_offset:;
} else if ((r & VT_VALMASK) == VT_LOCAL) { } else if ((r & VT_VALMASK) == VT_LOCAL) {
cstr_printf(add_str, "[fp,#%d]", (int) sv->c.i); cstr_printf(add_str, "[fp,#%d]", (int) sv->c.i);

View File

@ -1536,7 +1536,7 @@ ST_FUNC void subst_asm_operand(CString *add_str,
val = sv->c.i; val = sv->c.i;
if (modifier == 'n') if (modifier == 'n')
val = -val; val = -val;
cstr_printf(add_str, "%d", (int)sv->c.i); cstr_printf(add_str, "%d", val);
no_offset:; no_offset:;
#ifdef TCC_TARGET_X86_64 #ifdef TCC_TARGET_X86_64
if (r & VT_LVAL) if (r & VT_LVAL)

View File

@ -2158,10 +2158,10 @@ ST_FUNC void subst_asm_operand(CString *add_str, SValue *sv, int modifier)
val = sv->c.i; val = sv->c.i;
if (modifier == 'n') if (modifier == 'n')
val = -val; val = -val;
if (modifier == 'z' && sv->c.i == 0) { if (modifier == 'z' && val == 0) {
cstr_cat(add_str, "zero", -1); cstr_cat(add_str, "zero", -1);
} else { } else {
cstr_printf(add_str, "%d", (int) sv->c.i); cstr_printf(add_str, "%d", val);
} }
no_offset:; no_offset:;
} else if ((r & VT_VALMASK) == VT_LOCAL) { } else if ((r & VT_VALMASK) == VT_LOCAL) {