void IRTranslator::translateFPushCtor(const NormalizedInstruction& i) { HHIR_EMIT(FPushCtor, (i.imm[0].u_IVA)); }
void IRTranslator::translateYieldK(const NormalizedInstruction& i) { HHIR_EMIT(YieldK, i.nextSk().offset()); }
void IRTranslator::translateIncStat(const NormalizedInstruction& i) { HHIR_EMIT(IncStat, i.imm[0].u_IVA, i.imm[1].u_IVA, false); }
void IRTranslator::translateSwitch(const NormalizedInstruction& i) { HHIR_EMIT(Switch, i.immVec, i.imm[1].u_I64A, i.imm[2].u_IVA); }
void IRTranslator::translateRetV(const NormalizedInstruction& i) { HHIR_EMIT(RetV, i.inlineReturn); }
void IRTranslator::translateInitProp(const NormalizedInstruction& i) { HHIR_EMIT(InitProp, i.imm[0].u_SA, static_cast<InitPropOp>(i.imm[1].u_OA)); }
void IRTranslator::translateClsCnsD(const NormalizedInstruction& i) { HHIR_EMIT(ClsCnsD, (i.imm[0].u_SA), (i.imm[1].u_SA), i.outPred); }
void IRTranslator::translateFPushCufIter(const NormalizedInstruction& i) { HHIR_EMIT(FPushCufIter, i.imm[0].u_IVA, i.imm[1].u_IA); }
void IRTranslator::translateNewPackedArray(const NormalizedInstruction& i) { int numArgs = i.imm[0].u_IVA; HHIR_EMIT(NewPackedArray, numArgs); }
void IRTranslator::translateFPushFuncD(const NormalizedInstruction& i) { HHIR_EMIT(FPushFuncD, (i.imm[0].u_IVA), (i.imm[1].u_SA)); }
void IRTranslator::translateFPushFuncU(const NormalizedInstruction& i) { HHIR_EMIT(FPushFuncU, i.imm[0].u_IVA, i.imm[1].u_SA, i.imm[2].u_SA); }
void IRTranslator::translateInitThisLoc(const NormalizedInstruction& i) { HHIR_EMIT(InitThisLoc, i.imm[0].u_LA); }
void IRTranslator::translateBareThis(const NormalizedInstruction &i) { HHIR_EMIT(BareThis, (i.imm[0].u_OA)); }
void IRTranslator::translateCreateCl(const NormalizedInstruction& i) { HHIR_EMIT(CreateCl, (i.imm[0].u_IVA), (i.imm[1].u_SA)); }
void IRTranslator::translateIterBreak(const NormalizedInstruction& i) { assert(i.breaksTracelet); HHIR_EMIT(IterBreak, i.immVec, i.offset() + i.imm[1].u_BA, i.breaksTracelet); }
void IRTranslator::translateNewCol(const NormalizedInstruction& i) { HHIR_EMIT(NewCol, i.imm[0].u_IVA, i.imm[1].u_IVA); }
void IRTranslator::translateDecodeCufIter(const NormalizedInstruction& i) { HHIR_EMIT(DecodeCufIter, i.imm[0].u_IVA, i.offset() + i.imm[1].u_BA); }
void IRTranslator::translateStaticLoc(const NormalizedInstruction& i) { HHIR_EMIT(StaticLoc, i.imm[0].u_IVA, i.imm[1].u_SA); }
void IRTranslator::translateAssertRATStk(const NormalizedInstruction& i) { HHIR_EMIT(AssertRATStk, i.imm[0].u_IVA, i.imm[1].u_RATA); }
// check class hierarchy and fail if no match void IRTranslator::translateVerifyParamType(const NormalizedInstruction& i) { int param = i.imm[0].u_IVA; HHIR_EMIT(VerifyParamType, param); }
void IRTranslator::translateJmpNS(const NormalizedInstruction& i) { HHIR_EMIT(Jmp, i.offset() + i.imm[0].u_BA, i.breaksTracelet, true); }
void IRTranslator::translateConcatN(const NormalizedInstruction& i) { HHIR_EMIT(ConcatN, i.imm[0].u_IVA); }
void IRTranslator::translateSSwitch(const NormalizedInstruction& i) { HHIR_EMIT(SSwitch, i.immVec); }
void IRTranslator::translateJmpNS(const NormalizedInstruction& i) { HHIR_EMIT(Jmp, i.offset() + i.imm[0].u_BA, instrJmpFlags(i)); }
void IRTranslator::translateContEnter(const NormalizedInstruction& i) { HHIR_EMIT(ContEnter, i.nextSk().offset()); }
void IRTranslator::translateDefCls(const NormalizedInstruction& i) { int cid = i.imm[0].u_IVA; HHIR_EMIT(DefCls, cid, i.source.offset()); }
void IRTranslator::translateAwait(const NormalizedInstruction& i) { HHIR_EMIT(Await, i.nextSk().offset(), i.imm[0].u_IVA); }
void IRTranslator::translateFPushCufOp(const NormalizedInstruction& i) { HHIR_EMIT(FPushCufOp, i.op(), i.imm[0].u_IVA); }
void IRTranslator::translateIncDecL(const NormalizedInstruction& i) { auto const op = static_cast<IncDecOp>(i.imm[1].u_OA); HHIR_EMIT(IncDecL, isPre(op), isInc(op), isIncDecO(op), i.imm[0].u_LA); }
void IRTranslator::translateFPushObjMethodD(const NormalizedInstruction& i) { HHIR_EMIT(FPushObjMethodD, i.imm[0].u_IVA, // numParams i.imm[1].u_SA); // methodName }