Inst *JpIRBuilder::process(AnalysisProcessor &ap) const { this->checkSetup(); Inst *inst = new Inst(ap.getThreadID(), this->address, this->disas); try { this->templateMethod(ap, *inst, this->operands, "JP"); ap.incNumberOfExpressions(inst->numberOfExpressions()); /* Used for statistics */ } catch (std::exception &e) { delete inst; throw; } return inst; }
Inst *IncIRBuilder::process(void) const { this->checkSetup(); Inst *inst = new Inst(ap.getThreadID(), this->address, this->disas); try { this->templateMethod(*inst, this->operands, "INC"); ap.incNumberOfExpressions(inst->numberOfExpressions()); /* Used for statistics */ ControlFlow::rip(*inst, this->nextAddress); } catch (std::exception &e) { delete inst; throw; } return inst; }
Inst *MovdqaIRBuilder::process(AnalysisProcessor &ap) const { checkSetup(); Inst *inst = new Inst(ap.getThreadID(), this->address, this->disas); try { this->templateMethod(ap, *inst, this->operands, "MOVDQA"); ap.incNumberOfExpressions(inst->numberOfExpressions()); /* Used for statistics */ ControlFlow::rip(*inst, ap, this->nextAddress); } catch (std::exception &e) { delete inst; throw; } return inst; }