]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Handle case of assignment to IRTemp.
authorJulian Seward <jseward@acm.org>
Fri, 2 Jul 2004 17:29:14 +0000 (17:29 +0000)
committerJulian Seward <jseward@acm.org>
Fri, 2 Jul 2004 17:29:14 +0000 (17:29 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@36

VEX/isel_x86.c

index 90f43c39cd0ad1f06638df495a77502e22e3c794..42bb34d026a32a9754e35eebc526568e2aa0d6e6 100644 (file)
@@ -270,6 +270,19 @@ void iselStmt ( ISelEnv* env, IRStmt* stmt )
        return;
      }
 
+   case Ist_Tmp: {
+     IRTemp tmp = stmt->Ist.Tmp.tmp;
+     IRType ty = lookupIRTypeEnv(env->type_env, tmp);
+     if (ty == Ity_I32) {
+       X86RMI* rmi = iselIntExpr_RMI(env, stmt->Ist.Tmp.expr);
+       HReg dst = lookupIRTemp(env, tmp);
+       addInstr(env, 
+               X86Instr_Alu32R(Xalu_MOV,rmi,dst));
+       return;
+   }
+
+  }
+
    default: break;
    }
    ppIRStmt(stderr, stmt);
@@ -339,7 +352,7 @@ HInstrArray* iselBB ( IRBB* bb )
       }
       env->vregmap[i].vreg = hreg;
    }
-   env->ctr = 100;  //env->n_vregmap;
+   env->ctr = env->n_vregmap;
 
    /* Ok, finally we can iterate over the statements. */
    for (stmt = bb->stmts; stmt; stmt=stmt->link)