예제 #1
0
  public void generateByteCode(BytecodeGenerator codeEmittor, boolean debug) {
    if (debug) codeEmittor.emitDebugCall(opcode.name());

    // codeEmittor.emitCallWithArgsPA_A("insnANDBOOL");

    codeEmittor.emitInlineAndBool();
  }
예제 #2
0
  public void generateByteCode(BytecodeGenerator codeEmittor, boolean debug) {
    if (debug) codeEmittor.emitDebugCall2(opcode.name(), Integer.toString(types), arity);

    // TODO add source line.
    codeEmittor.emitCallWithArgsSSFII_S("jvmOCALLDYN", types, arity, debug);
    // codeEmittor.emitIncSP(-arity-1); ??
    codeEmittor.emitReturnValue2ACCU();
  }
예제 #3
0
  public void generateByteCode(BytecodeGenerator codeEmittor, boolean debug) {
    int what =
        (pos == -1)
            ? codeblock.getConstantIndex(codeblock.vf.string(fuid))
            : codeblock.getFunctionIndex(fuid);

    if (debug)
      codeEmittor.emitDebugCall2(
          opcode.name(), (pos == -1) ? fuid : codeblock.getFunctionName(fuid), pos);

    codeEmittor.emitVoidCallWithArgsFII("RESETVAR", what, pos, debug);
  }