@Override public void AttrAssignInstr(AttrAssignInstr attrAssignInstr) { compileCallCommon(jvmMethod(), attrAssignInstr); }
@Override public void NoResultCallInstr(NoResultCallInstr noResultCallInstr) { compileCallCommon(jvmMethod(), noResultCallInstr); }
@Override public void AttrAssignInstr(AttrAssignInstr attrAssignInstr) { compileCallCommon(jvmMethod(), attrAssignInstr); }
@Override public void NoResultCallInstr(NoResultCallInstr noResultCallInstr) { compileCallCommon(jvmMethod(), noResultCallInstr); }
@Override public void MatchInstr(MatchInstr matchInstr) { compileCallCommon(jvmMethod(), matchInstr); }
@Override public void MatchInstr(MatchInstr matchInstr) { compileCallCommon(jvmMethod(), matchInstr); }
@Override public void CallInstr(CallInstr callInstr) { if (callInstr instanceof OneFixnumArgNoBlockCallInstr) { oneFixnumArgNoBlockCallInstr((OneFixnumArgNoBlockCallInstr) callInstr); return; } else if (callInstr instanceof OneFloatArgNoBlockCallInstr) { oneFloatArgNoBlockCallInstr((OneFloatArgNoBlockCallInstr) callInstr); return; } // JIT does not support refinements yet if (callInstr.getCallSite() instanceof RefinedCachingCallSite) { throw new NotCompilableException("refinements are unsupported in JIT"); } compileCallCommon(jvmMethod(), callInstr); }
@Override public void CallInstr(CallInstr callInstr) { if (callInstr instanceof OneFixnumArgNoBlockCallInstr) { oneFixnumArgNoBlockCallInstr((OneFixnumArgNoBlockCallInstr) callInstr); return; } else if (callInstr instanceof OneFloatArgNoBlockCallInstr) { oneFloatArgNoBlockCallInstr((OneFloatArgNoBlockCallInstr) callInstr); return; } // JIT does not support refinements yet if (callInstr.getCallSite() instanceof RefinedCachingCallSite) { throw new NotCompilableException("refinements are unsupported in JIT"); } compileCallCommon(jvmMethod(), callInstr); }
@Override public void EQQInstr(EQQInstr eqqinstr) { if (!eqqinstr.isSplattedValue() && !(eqqinstr.getArg1() instanceof UndefinedValue)) { compileCallCommon(jvmMethod(), eqqinstr); } else { jvmMethod().loadContext(); visit(eqqinstr.getReceiver()); visit(eqqinstr.getArg1()); jvmMethod().callEqq(eqqinstr); jvmStoreLocal(eqqinstr.getResult()); } }
@Override public void EQQInstr(EQQInstr eqqinstr) { if (!eqqinstr.isSplattedValue() && !(eqqinstr.getArg1() instanceof UndefinedValue)) { compileCallCommon(jvmMethod(), eqqinstr); } else { jvmMethod().loadContext(); visit(eqqinstr.getReceiver()); visit(eqqinstr.getArg1()); jvmMethod().callEqq(eqqinstr); jvmStoreLocal(eqqinstr.getResult()); } }