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;
|
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);
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user