static byte[] getImage(OP code) {
    int retID=code.resID;

    ClassFile cf=(ClassFile)cf_orig.clone();

    // set return type
    int otsize=cf.tsize;
    cf.tsize=retID_patchback;
    cf.write((byte)retID);
    cf.tsize=otsize;

    String retName;
    if ((retID<8))
      retName=OP.specialTypes[20+retID].getName();
    else if (retID==9)
      retName="java.lang.Void";
    else 
      retName=code.resType.getName();

    // set return class
    otsize=cf.tsize;
    cf.tsize=retIDC_patchback;
    cf.writeShort(cf.getIndex(retName,8));
    cf.tsize=otsize;
    
    // add the evaluate method
    cf.newMethod(eval_methods[retID],null);
    code.compile(cf);

    return cf.getImage();
  };