diff --git a/lisc/isel.c b/lisc/isel.c index 60cc2d5..fa01fce 100644 --- a/lisc/isel.c +++ b/lisc/isel.c @@ -1,11 +1,6 @@ #include "lisc.h" /* For x86_64, we have to: - * - * - add dummy uses for the second argument - * after non-commutative arithmetic - * operations (this prevents the reg. - * allocator to get 'eax = sub ebx eax') * * - check that constants are used only in * places allowed by the machine @@ -62,9 +57,7 @@ sel(Ins *i, Fn *fn) break; case OAdd: case OSub: - if (!opdesc[i->op].commut - && rtype(i->arg[1]) != RConst) - emit(OCopy, R, i->arg[1], R); + case OCopy: emit(i->op, i->to, i->arg[0], i->arg[1]); break; default: