shithub: mc

Download patch

ref: e01e8d1bd5f6412dedd7370b7e2ce1d55f7b7eee
parent: 11752f28b4f0630ee461631196e2ebdefa803a82
author: Ori Bernstein <[email protected]>
date: Thu May 30 06:45:10 EDT 2013

Keep logical-not operands in registers.

    One of the operands of the test instruction needs to be in
    a register, which means that when testing a value against
    itslef, we need to load it into a reg.

--- a/6/isel.c
+++ b/6/isel.c
@@ -527,7 +527,7 @@
             break;
 
         case Olnot:
-            a = selexpr(s, args[0]);
+            a = inr(s, selexpr(s, args[0]));
             b = locreg(ModeB);
             r = locreg(mode(n));
             g(s, reloptab[exprop(n)].test, a, a, NULL);