src/share/vm/code/relocInfo.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/code

src/share/vm/code/relocInfo.hpp

Print this page




1073  private:
1074   jint _method_index; // resolved method for a Java call
1075 
1076   opt_virtual_call_Relocation(int method_index) {
1077     _method_index = method_index;
1078   }
1079 
1080   friend class RelocIterator;
1081   opt_virtual_call_Relocation() {}
1082 
1083  public:
1084   int     method_index() { return _method_index; }
1085   Method* method_value();
1086 
1087   void pack_data_to(CodeSection* dest);
1088   void unpack_data();
1089 
1090   void clear_inline_cache();
1091 
1092   // find the matching static_stub
1093   address static_stub();
1094 };
1095 
1096 
1097 class static_call_Relocation : public CallRelocation {
1098   relocInfo::relocType type() { return relocInfo::static_call_type; }
1099 
1100  public:
1101   static RelocationHolder spec(int method_index = 0) {
1102     RelocationHolder rh = newHolder();
1103     new(rh) static_call_Relocation(method_index);
1104     return rh;
1105   }
1106 
1107  private:
1108   jint _method_index; // resolved method for a Java call
1109 
1110   static_call_Relocation(int method_index) {
1111     _method_index = method_index;
1112   }
1113 
1114   friend class RelocIterator;
1115   static_call_Relocation() {}
1116 
1117  public:
1118   int     method_index() { return _method_index; }
1119   Method* method_value();
1120 
1121   void pack_data_to(CodeSection* dest);
1122   void unpack_data();
1123 
1124   void clear_inline_cache();
1125 
1126   // find the matching static_stub
1127   address static_stub();
1128 };
1129 
1130 class static_stub_Relocation : public Relocation {
1131   relocInfo::relocType type() { return relocInfo::static_stub_type; }
1132 
1133  public:
1134   static RelocationHolder spec(address static_call) {
1135     RelocationHolder rh = newHolder();
1136     new(rh) static_stub_Relocation(static_call);
1137     return rh;
1138   }
1139 
1140  private:
1141   address _static_call;  // location of corresponding static_call

1142 
1143   static_stub_Relocation(address static_call) {
1144     _static_call = static_call;

1145   }
1146 
1147   friend class RelocIterator;
1148   static_stub_Relocation() { }
1149 
1150  public:
1151   void clear_inline_cache();
1152 
1153   address static_call() { return _static_call; }

1154 
1155   // data is packed as a scaled offset in "1_int" format:  [c] or [Cc]
1156   void pack_data_to(CodeSection* dest);
1157   void unpack_data();
1158 };
1159 
1160 class runtime_call_Relocation : public CallRelocation {
1161   relocInfo::relocType type() { return relocInfo::runtime_call_type; }
1162 
1163  public:
1164   static RelocationHolder spec() {
1165     RelocationHolder rh = newHolder();
1166     new(rh) runtime_call_Relocation();
1167     return rh;
1168   }
1169 
1170  private:
1171   friend class RelocIterator;
1172   runtime_call_Relocation() { }
1173 




1073  private:
1074   jint _method_index; // resolved method for a Java call
1075 
1076   opt_virtual_call_Relocation(int method_index) {
1077     _method_index = method_index;
1078   }
1079 
1080   friend class RelocIterator;
1081   opt_virtual_call_Relocation() {}
1082 
1083  public:
1084   int     method_index() { return _method_index; }
1085   Method* method_value();
1086 
1087   void pack_data_to(CodeSection* dest);
1088   void unpack_data();
1089 
1090   void clear_inline_cache();
1091 
1092   // find the matching static_stub
1093   address static_stub(bool is_aot);
1094 };
1095 
1096 
1097 class static_call_Relocation : public CallRelocation {
1098   relocInfo::relocType type() { return relocInfo::static_call_type; }
1099 
1100  public:
1101   static RelocationHolder spec(int method_index = 0) {
1102     RelocationHolder rh = newHolder();
1103     new(rh) static_call_Relocation(method_index);
1104     return rh;
1105   }
1106 
1107  private:
1108   jint _method_index; // resolved method for a Java call
1109 
1110   static_call_Relocation(int method_index) {
1111     _method_index = method_index;
1112   }
1113 
1114   friend class RelocIterator;
1115   static_call_Relocation() {}
1116 
1117  public:
1118   int     method_index() { return _method_index; }
1119   Method* method_value();
1120 
1121   void pack_data_to(CodeSection* dest);
1122   void unpack_data();
1123 
1124   void clear_inline_cache();
1125 
1126   // find the matching static_stub
1127   address static_stub(bool is_aot);
1128 };
1129 
1130 class static_stub_Relocation : public Relocation {
1131   relocInfo::relocType type() { return relocInfo::static_stub_type; }
1132 
1133  public:
1134   static RelocationHolder spec(address static_call, bool is_aot = false) {
1135     RelocationHolder rh = newHolder();
1136     new(rh) static_stub_Relocation(static_call, is_aot);
1137     return rh;
1138   }
1139 
1140  private:
1141   address _static_call;  // location of corresponding static_call
1142   bool _is_aot;          // trampoline to aot code
1143 
1144   static_stub_Relocation(address static_call, bool is_aot) {
1145     _static_call = static_call;
1146     _is_aot = is_aot;
1147   }
1148 
1149   friend class RelocIterator;
1150   static_stub_Relocation() { }
1151 
1152  public:
1153   void clear_inline_cache();
1154 
1155   address static_call() { return _static_call; }
1156   bool is_aot() { return _is_aot; }
1157 
1158   // data is packed as a scaled offset in "1_int" format:  [c] or [Cc]
1159   void pack_data_to(CodeSection* dest);
1160   void unpack_data();
1161 };
1162 
1163 class runtime_call_Relocation : public CallRelocation {
1164   relocInfo::relocType type() { return relocInfo::runtime_call_type; }
1165 
1166  public:
1167   static RelocationHolder spec() {
1168     RelocationHolder rh = newHolder();
1169     new(rh) runtime_call_Relocation();
1170     return rh;
1171   }
1172 
1173  private:
1174   friend class RelocIterator;
1175   runtime_call_Relocation() { }
1176 


src/share/vm/code/relocInfo.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File