emit_move
emit_move(src, reg, ctype, "begin copy ..");
emit_move(reg, dest, ctype, ".... end copy");
emit_move(val, reg1, NULL, NULL);
emit_move(reg1, new, NULL, "end EXPR_COMPARE");
emit_move(val, REG_EDX, NULL, NULL);
emit_move(left, REG_EAX, NULL, NULL);
emit_move(reg, new, NULL, NULL);
emit_move(dest, new, NULL, "end EXPR_BINOP");
emit_move(val, REG_EAX, expr->ctype, "return");
emit_move(reg_true, new, expr->ctype, NULL);
emit_move(op, REG_EAX, old_type, "begin cast ..");
emit_move(REG_EAX, new, new_type, ".... end cast");
emit_move(val, REG_EDX, NULL, NULL);
emit_move(target, REG_EAX, expr->unop->ctype, NULL);
emit_move(REG_EDX, new, expr->unop->ctype, NULL);
emit_move(target, REG_EAX, expr->unop->ctype, NULL);
emit_move(REG_EAX, new, expr->unop->ctype, NULL);
emit_move(val, REG_EAX, stmt->switch_expression->ctype, "begin case");
static void emit_move(struct storage *src, struct storage *dest,
emit_move(val, REG_EAX, NULL, "loop pre condition");
emit_move(val, REG_EAX, NULL, "loop post condition");
emit_move(fncall, REG_EAX, fn->ctype, NULL);
emit_move(REG_EAX, retval, NULL, "end function call");
emit_move(addr, REG_EAX, NULL, "begin deref ..");
emit_move(REG_ECX, new, NULL, ".... end deref");
emit_move(val, addr, expr->left->ctype, NULL);
emit_move(value, reg, value->ctype, "reload register");