From 5d49ece5da8d1943b90ce8e1966ca1397f2d9a04 Mon Sep 17 00:00:00 2001 From: Ali Gholami Rudi Date: Fri, 9 Jul 2010 18:02:00 +0430 Subject: [PATCH] ncc: don't change operand order for const ops --- ncc.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/ncc.c b/ncc.c index 3745749..baca723 100644 --- a/ncc.c +++ b/ncc.c @@ -315,17 +315,15 @@ static void ts_addop(int op) ts_push_bt(bt_op(TYPE_BT(&t1), TYPE_BT(&t2))); return; } - if (t1.ptr && !t2.ptr) { - struct type t = t2; - t2 = t1; - t1 = t; + if (t1.ptr && !t2.ptr) o_tmpswap(); - } if (!t1.ptr && t2.ptr) if (type_szde(&t2) > 1) { o_num(type_szde(&t2), 4); o_bop(O_MUL); } + if (t1.ptr && !t2.ptr) + o_tmpswap(); o_bop(op); if (t1.ptr && t2.ptr) { int sz = type_szde(&t1); @@ -335,7 +333,7 @@ static void ts_addop(int op) } ts_push_bt(4 | BT_SIGNED); } else { - ts_push(&t2); + ts_push(t1.ptr ? &t1 : &t2); } } -- 2.11.4.GIT