Package org.objectweb.asm

Examples of org.objectweb.asm.MethodVisitor.visitCode()


    mv.visitMaxs(1, 1);
    mv.visitEnd();

    mv = cv.visitMethod(ACC_PUBLIC, "registerImportsAndExports", "()V",
        null, null);
    mv.visitCode();
    mv.visitVarInsn(ALOAD, 0);
    mv.visitMethodInsn(INVOKESPECIAL, ECOMPILEDMODULE_NAME,
        "registerImportsAndExports", "()V");

    for (Lambda l : lambdas_xx.values()) {
View Full Code Here


      /** */
      MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "encode",
          "(" + Type.getDescriptor(EOutputStream.class) + ")V", null,
          null);
      mv.visitCode();

      mv.visitVarInsn(ALOAD, 1);

      mv.visitVarInsn(ALOAD, 0);
      mv.visitFieldInsn(GETFIELD, full_inner_name, "pid",
View Full Code Here

    }
    sb.append(")V");

    MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "<init>", sb.toString(),
        null, null);
    mv.visitCode();

    mv.visitVarInsn(ALOAD, 0);
    if (exported) {
      mv.visitLdcInsn(module_name);
      mv.visitLdcInsn(function_name);
View Full Code Here

    mv.visitEnd();

    if (lambda != null) {
      mv = cw.visitMethod(ACC_PROTECTED, "get_env", "()" + ESEQ_DESC,
          null, null);
      mv.visitCode();
      mv.visitFieldInsn(GETSTATIC, ERT_NAME, "NIL",
          ENIL_TYPE.getDescriptor());
      for (int i = freevars - 1; i >= 0; i--) {
        mv.visitVarInsn(ALOAD, 0);
        mv.visitFieldInsn(GETFIELD, full_inner_name, "fv" + i,
View Full Code Here

      mv.visitMaxs(3, 3);
      mv.visitEnd();

      mv = cw.visitMethod(ACC_PROTECTED, "get_pid", "()" + EOBJECT_DESC,
          null, null);
      mv.visitCode();
      mv.visitVarInsn(ALOAD, 0);
      mv.visitFieldInsn(GETFIELD, full_inner_name, "pid",
          EPID_TYPE.getDescriptor());
      mv.visitInsn(ARETURN);
      mv.visitMaxs(3, 3);
View Full Code Here

      mv.visitMaxs(3, 3);
      mv.visitEnd();

      mv = cw.visitMethod(ACC_PROTECTED, "get_id",
          "()" + Type.getDescriptor(FunID.class), null, null);
      mv.visitCode();
      mv.visitFieldInsn(GETSTATIC,
          outer_name,
          anon_fun_name(lambda), Type.getDescriptor(LocalFunID.class));
      mv.visitInsn(ARETURN);
      mv.visitMaxs(3, 3);
View Full Code Here

    public static void make_invoketail_method(ClassWriter cw,
      String full_inner, int arity, int freevars) {
    MethodVisitor mv;
    mv = cw.visitMethod(ACC_PUBLIC | ACC_FINAL, "invoke_tail",
        EUtil.getSignature(arity - freevars, true), null, null);
    mv.visitCode();
    for (int i = 0; i < arity - freevars; i++) {
      mv.visitVarInsn(ALOAD, 1);
      mv.visitVarInsn(ALOAD, i + 2);
      mv.visitFieldInsn(PUTFIELD, EPROC_NAME, "arg" + i, EOBJECT_DESC);
    }
View Full Code Here

        make_invoke_method(cw, self_type, arity);

        CompilerVisitor.make_invoketail_method(cw, self_type, arity, 0);

        MethodVisitor mv = cw.visitMethod(Opcodes.ACC_PUBLIC, "arity", "()I", null, null);
        mv.visitCode();
        mv.visitLdcInsn(new Integer(arity));
        mv.visitInsn(Opcodes.IRETURN);
        mv.visitMaxs(2, 2);
        mv.visitEnd();
View Full Code Here

        mv.visitEnd();

        mv = cw.visitMethod(Opcodes.ACC_PUBLIC, "invoke", "("
                + EPROC_TYPE.getDescriptor() + EOBJECT_ARR_TYPE.getDescriptor()
                + ")" + EOBJECT_TYPE.getDescriptor(), null, PAUSABLE_EX);
        mv.visitCode();
        mv.visitVarInsn(Opcodes.ALOAD, 0); // load this
        mv.visitVarInsn(Opcodes.ALOAD, 1); // load proc
        for (int i = 0; i < arity; i++) {
            mv.visitVarInsn(Opcodes.ALOAD, 2);
            push_int(mv, i);
View Full Code Here

            MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "<init>", "("
                    + EFUNHANDLER_TYPE.getDescriptor()
                    + EATOM_DESC
                    + EATOM_DESC
                    + ")V", null, null);
            mv.visitCode();

            mv.visitVarInsn(ALOAD, 0);
            mv.visitMethodInsn(INVOKESPECIAL, super_class_name, "<init>",
                    "()V");
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.