mirror of
git://repo.or.cz/tinycc.git
synced 2026-11-04 21:26:36 +08:00
{arm,i386,riscv64}-asm.c: fix generic operand modifier 'n' not negating
This commit is contained in:
parent
d9d02c5640
commit
85ba3ae8f1
@ -2631,7 +2631,7 @@ ST_FUNC void subst_asm_operand(CString *add_str, SValue *sv, int modifier)
|
||||
val = sv->c.i;
|
||||
if (modifier == 'n')
|
||||
val = -val;
|
||||
cstr_printf(add_str, "%d", (int) sv->c.i);
|
||||
cstr_printf(add_str, "%d", val);
|
||||
no_offset:;
|
||||
} else if ((r & VT_VALMASK) == VT_LOCAL) {
|
||||
cstr_printf(add_str, "[fp,#%d]", (int) sv->c.i);
|
||||
|
||||
@ -1536,7 +1536,7 @@ ST_FUNC void subst_asm_operand(CString *add_str,
|
||||
val = sv->c.i;
|
||||
if (modifier == 'n')
|
||||
val = -val;
|
||||
cstr_printf(add_str, "%d", (int)sv->c.i);
|
||||
cstr_printf(add_str, "%d", val);
|
||||
no_offset:;
|
||||
#ifdef TCC_TARGET_X86_64
|
||||
if (r & VT_LVAL)
|
||||
|
||||
@ -2158,10 +2158,10 @@ ST_FUNC void subst_asm_operand(CString *add_str, SValue *sv, int modifier)
|
||||
val = sv->c.i;
|
||||
if (modifier == 'n')
|
||||
val = -val;
|
||||
if (modifier == 'z' && sv->c.i == 0) {
|
||||
if (modifier == 'z' && val == 0) {
|
||||
cstr_cat(add_str, "zero", -1);
|
||||
} else {
|
||||
cstr_printf(add_str, "%d", (int) sv->c.i);
|
||||
cstr_printf(add_str, "%d", val);
|
||||
}
|
||||
no_offset:;
|
||||
} else if ((r & VT_VALMASK) == VT_LOCAL) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user