From 9c7b06d68f6a71ff43d1de60953658ca47bbde36 Mon Sep 17 00:00:00 2001 From: Quentin Carbonneaux Date: Wed, 5 Aug 2015 12:47:10 -0400 Subject: quick fix for comparisons with constants --- lisc/isel.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lisc/isel.c') diff --git a/lisc/isel.c b/lisc/isel.c index 6fdf5ff..faea3b5 100644 --- a/lisc/isel.c +++ b/lisc/isel.c @@ -87,8 +87,14 @@ sel(Ins i, Fn *fn) default: if (OCmp <= i.op && i.op <= OCmp1) { c = i.op - OCmp; + if (rtype(i.arg[0]) == RCon) { + r0 = i.arg[0]; + i.arg[0] = i.arg[1]; + i.arg[1] = r0; + c = CNEG(c); + } emit(OXSet+c, i.to, R, R); - emit(OXCmp, R, i.arg[0], i.arg[1]); + emit(OXCmp, R, i.arg[1], i.arg[0]); break; } diag("isel: non-exhaustive implementation"); -- cgit 1.4.1