From 0381387640fecfc1d8bd9e79d972a2b58c508069 Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Mon, 8 Aug 2016 20:46:16 +0200 Subject: x86-asm: Correctly infer register size for bools Register operands of type _Bool weren't correctly getting the 8-bit sized registers (but rather used the default 32-bit ones). --- i386-asm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'i386-asm.c') diff --git a/i386-asm.c b/i386-asm.c index dd8bb98..3d87e92 100644 --- a/i386-asm.c +++ b/i386-asm.c @@ -1478,7 +1478,8 @@ ST_FUNC void subst_asm_operand(CString *add_str, tcc_error("internal compiler error"); /* choose register operand size */ - if ((sv->type.t & VT_BTYPE) == VT_BYTE) + if ((sv->type.t & VT_BTYPE) == VT_BYTE || + (sv->type.t & VT_BTYPE) == VT_BOOL) size = 1; else if ((sv->type.t & VT_BTYPE) == VT_SHORT) size = 2; -- cgit v1.3.1