src/share/native/com/sun/java/util/jar/pack/unpack.cpp

Print this page




2925     return &bc_floatref;
2926   case bc_lldc2_w:
2927     return &bc_longref;
2928   case bc_dldc2_w:
2929     return &bc_doubleref;
2930   case bc_sldc:
2931   case bc_sldc_w:
2932     return &bc_stringref;
2933   case bc_cldc:
2934   case bc_cldc_w:
2935     return &bc_classref;
2936   case bc_qldc: case bc_qldc_w:
2937     return &bc_loadablevalueref;
2938 
2939   case bc_getstatic:
2940   case bc_putstatic:
2941   case bc_getfield:
2942   case bc_putfield:
2943     return &bc_fieldref;
2944 



2945   case bc_invokevirtual:
2946   case bc_invokespecial:
2947   case bc_invokestatic:
2948     return &bc_methodref;
2949   case bc_invokeinterface:
2950     return &bc_imethodref;
2951   case bc_invokedynamic:
2952     return &bc_indyref;
2953 
2954   case bc_new:
2955   case bc_anewarray:
2956   case bc_checkcast:
2957   case bc_instanceof:
2958   case bc_multianewarray:
2959     return &bc_classref;
2960   }
2961   return null;
2962 }
2963 
2964 maybe_inline


4160         //int lVal = bc_label.getInt();
4161         if (bc < bc_goto_w) {
4162           put_label(curIP, 2);  //putu2(lVal & 0xFFFF);
4163         } else {
4164           assert(bc <= bc_jsr_w);
4165           put_label(curIP, 4);  //putu4(lVal);
4166         }
4167         assert((int)to_bci(curIP) == curPC);
4168         continue;
4169       }
4170       bc_which = ref_band_for_op(bc);
4171       if (bc_which != null) {
4172         entry* ref = bc_which->getRefCommon(bc_which->ix, bc_which->nullOK);
4173         CHECK;
4174         if (ref == null && bc_which == &bc_classref) {
4175           // Shorthand for class self-references.
4176           ref = thisClass;
4177         }
4178         origBC = bc;
4179         switch (bc) {






4180         case bc_ildc:
4181         case bc_cldc:
4182         case bc_fldc:
4183         case bc_sldc:
4184         case bc_qldc:
4185           origBC = bc_ldc;
4186           break;
4187         case bc_ildc_w:
4188         case bc_cldc_w:
4189         case bc_fldc_w:
4190         case bc_sldc_w:
4191         case bc_qldc_w:
4192           origBC = bc_ldc_w;
4193           break;
4194         case bc_lldc2_w:
4195         case bc_dldc2_w:
4196           origBC = bc_ldc2_w;
4197           break;
4198         case bc_new:
4199           newClass = ref;




2925     return &bc_floatref;
2926   case bc_lldc2_w:
2927     return &bc_longref;
2928   case bc_dldc2_w:
2929     return &bc_doubleref;
2930   case bc_sldc:
2931   case bc_sldc_w:
2932     return &bc_stringref;
2933   case bc_cldc:
2934   case bc_cldc_w:
2935     return &bc_classref;
2936   case bc_qldc: case bc_qldc_w:
2937     return &bc_loadablevalueref;
2938 
2939   case bc_getstatic:
2940   case bc_putstatic:
2941   case bc_getfield:
2942   case bc_putfield:
2943     return &bc_fieldref;
2944 
2945   case _invokespecial_int:
2946   case _invokestatic_int:
2947     return &bc_imethodref;
2948   case bc_invokevirtual:
2949   case bc_invokespecial:
2950   case bc_invokestatic:
2951     return &bc_methodref;
2952   case bc_invokeinterface:
2953     return &bc_imethodref;
2954   case bc_invokedynamic:
2955     return &bc_indyref;
2956 
2957   case bc_new:
2958   case bc_anewarray:
2959   case bc_checkcast:
2960   case bc_instanceof:
2961   case bc_multianewarray:
2962     return &bc_classref;
2963   }
2964   return null;
2965 }
2966 
2967 maybe_inline


4163         //int lVal = bc_label.getInt();
4164         if (bc < bc_goto_w) {
4165           put_label(curIP, 2);  //putu2(lVal & 0xFFFF);
4166         } else {
4167           assert(bc <= bc_jsr_w);
4168           put_label(curIP, 4);  //putu4(lVal);
4169         }
4170         assert((int)to_bci(curIP) == curPC);
4171         continue;
4172       }
4173       bc_which = ref_band_for_op(bc);
4174       if (bc_which != null) {
4175         entry* ref = bc_which->getRefCommon(bc_which->ix, bc_which->nullOK);
4176         CHECK;
4177         if (ref == null && bc_which == &bc_classref) {
4178           // Shorthand for class self-references.
4179           ref = thisClass;
4180         }
4181         origBC = bc;
4182         switch (bc) {
4183         case _invokestatic_int:
4184           origBC = bc_invokestatic;
4185           break;
4186         case _invokespecial_int:
4187           origBC = bc_invokespecial;
4188           break;
4189         case bc_ildc:
4190         case bc_cldc:
4191         case bc_fldc:
4192         case bc_sldc:
4193         case bc_qldc:
4194           origBC = bc_ldc;
4195           break;
4196         case bc_ildc_w:
4197         case bc_cldc_w:
4198         case bc_fldc_w:
4199         case bc_sldc_w:
4200         case bc_qldc_w:
4201           origBC = bc_ldc_w;
4202           break;
4203         case bc_lldc2_w:
4204         case bc_dldc2_w:
4205           origBC = bc_ldc2_w;
4206           break;
4207         case bc_new:
4208           newClass = ref;