#define binop(kind, a1, a2) IRExpr_Binop(kind, a1, a2)
#define triop(kind, a1, a2, a3) IRExpr_Triop(kind, a1, a2, a3)
#define qop(kind, a1, a2, a3, a4) IRExpr_Qop(kind, a1, a2, a3, a4)
-#define stmt(irsb, st) addStmtToIRSB(irsb, st)
+#define stmt(irsb, st) addStmtToIRStmtVec(irsb->stmts, st)
/* The IR Injection Control Block. vex_inject_ir will query its contents
/* Inject IR stmts depending on the data provided in the control
- block iricb. */
+ block iricb. IR statements are injected into main IRStmtVec with ID #0. */
void
vex_inject_ir(IRSB *irsb, IREndness endian)
{
if (0) {
vex_printf("BEGIN inject\n");
if (iricb.t_result == Ity_I1 || sizeofIRType(iricb.t_result) <= 8) {
- ppIRStmt(irsb->stmts[irsb->stmts_used - 1]);
+ ppIRStmt(irsb->stmts->stmts[irsb->stmts->stmts_used - 1],
+ irsb->tyenv, 0);
} else if (sizeofIRType(iricb.t_result) == 16) {
- ppIRStmt(irsb->stmts[irsb->stmts_used - 2]);
+ ppIRStmt(irsb->stmts->stmts[irsb->stmts->stmts_used - 2],
+ irsb->tyenv, 0);
vex_printf("\n");
- ppIRStmt(irsb->stmts[irsb->stmts_used - 1]);
+ ppIRStmt(irsb->stmts->stmts[irsb->stmts->stmts_used - 1],
+ irsb->tyenv, 0);
}
vex_printf("\nEND inject\n");
}