Inst buildCCall(Code& code, Value* origin, const Vector<Arg>& arguments) { Inst inst(Patch, origin, Arg::special(code.cCallSpecial())); inst.args.append(arguments[0]); inst.args.append(Tmp(GPRInfo::returnValueGPR)); inst.args.append(Tmp(GPRInfo::returnValueGPR2)); inst.args.append(Tmp(FPRInfo::returnValueFPR)); for (unsigned i = 1; i < arguments.size(); ++i) { Arg arg = arguments[i]; if (arg.isTmp()) inst.args.append(arg); } return inst; }