From 2437ccdc768b1a4fde3255b2090e180b74ab198f Mon Sep 17 00:00:00 2001 From: seyko Date: Tue, 3 Mar 2015 15:51:09 +0300 Subject: A partial reverse for commit eda2c756edc4dca004ba217d5bf361235dd9de1f Author: Thomas Preud'homme Date: Tue Dec 31 23:51:20 2013 +0800 Move logic for if (int value) to tccgen.c Move the logic to do a test of an integer value (ex if (0)) out of arch-specific code to tccgen.c to avoid code duplication. This also fixes test of long long value which was only testing the bottom half of such values on 32 bits architectures. I don't understand why if () in gtst(i) was removed. This patch allows to compile a linux kernel v.2.4.26 W/o this patch a tcc simply crashes. --- x86_64-gen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'x86_64-gen.c') diff --git a/x86_64-gen.c b/x86_64-gen.c index c8fed85..67aaadc 100644 --- a/x86_64-gen.c +++ b/x86_64-gen.c @@ -1592,7 +1592,7 @@ int gtst(int inv, int t) } g(0x0f); t = psym((vtop->c.i - 16) ^ inv, t); - } else { /* VT_JMP || VT_JMPI */ + } else if (v == VT_JMP || v == VT_JMPI) { /* && or || optimization */ if ((v & 1) == inv) { /* insert vtop->c jump list in t */ -- cgit v1.3.1