213 void initialize_resolved_reference_index(int ref_index) { 214 assert(_f2 == 0, "set once"); // note: ref_index might be zero also 215 _f2 = ref_index; 216 } 217 218 void set_field( // sets entry to resolved field state 219 Bytecodes::Code get_code, // the bytecode used for reading the field 220 Bytecodes::Code put_code, // the bytecode used for writing the field 221 Klass* field_holder, // the object/klass holding the field 222 int orig_field_index, // the original field index in the field holder 223 int field_offset, // the field offset in words in the field holder 224 TosState field_type, // the (machine) field type 225 bool is_final, // the field is final 226 bool is_volatile, // the field is volatile 227 Klass* root_klass // needed by the GC to dirty the klass 228 ); 229 230 private: 231 void set_direct_or_vtable_call( 232 Bytecodes::Code invoke_code, // the bytecode used for invoking the method 233 methodHandle method, // the method/prototype if any (NULL, otherwise) 234 int vtable_index, // the vtable index if any, else negative 235 bool sender_is_interface 236 ); 237 238 public: 239 void set_direct_call( // sets entry to exact concrete method entry 240 Bytecodes::Code invoke_code, // the bytecode used for invoking the method 241 methodHandle method, // the method to call 242 bool sender_is_interface 243 ); 244 245 void set_vtable_call( // sets entry to vtable index 246 Bytecodes::Code invoke_code, // the bytecode used for invoking the method 247 methodHandle method, // resolved method which declares the vtable index 248 int vtable_index // the vtable index 249 ); 250 251 void set_itable_call( 252 Bytecodes::Code invoke_code, // the bytecode used; must be invokeinterface 253 const methodHandle& method, // the resolved interface method 254 int itable_index // index into itable for the method 255 ); 256 257 void set_method_handle( 258 const constantPoolHandle& cpool, // holding constant pool (required for locking) 259 const CallInfo &call_info // Call link information 260 ); 261 262 void set_dynamic_call( 263 const constantPoolHandle& cpool, // holding constant pool (required for locking) 264 const CallInfo &call_info // Call link information 265 ); 266 267 // Common code for invokedynamic and MH invocations. | 213 void initialize_resolved_reference_index(int ref_index) { 214 assert(_f2 == 0, "set once"); // note: ref_index might be zero also 215 _f2 = ref_index; 216 } 217 218 void set_field( // sets entry to resolved field state 219 Bytecodes::Code get_code, // the bytecode used for reading the field 220 Bytecodes::Code put_code, // the bytecode used for writing the field 221 Klass* field_holder, // the object/klass holding the field 222 int orig_field_index, // the original field index in the field holder 223 int field_offset, // the field offset in words in the field holder 224 TosState field_type, // the (machine) field type 225 bool is_final, // the field is final 226 bool is_volatile, // the field is volatile 227 Klass* root_klass // needed by the GC to dirty the klass 228 ); 229 230 private: 231 void set_direct_or_vtable_call( 232 Bytecodes::Code invoke_code, // the bytecode used for invoking the method 233 const methodHandle& method, // the method/prototype if any (NULL, otherwise) 234 int vtable_index, // the vtable index if any, else negative 235 bool sender_is_interface 236 ); 237 238 public: 239 void set_direct_call( // sets entry to exact concrete method entry 240 Bytecodes::Code invoke_code, // the bytecode used for invoking the method 241 const methodHandle& method, // the method to call 242 bool sender_is_interface 243 ); 244 245 void set_vtable_call( // sets entry to vtable index 246 Bytecodes::Code invoke_code, // the bytecode used for invoking the method 247 const methodHandle& method, // resolved method which declares the vtable index 248 int vtable_index // the vtable index 249 ); 250 251 void set_itable_call( 252 Bytecodes::Code invoke_code, // the bytecode used; must be invokeinterface 253 const methodHandle& method, // the resolved interface method 254 int itable_index // index into itable for the method 255 ); 256 257 void set_method_handle( 258 const constantPoolHandle& cpool, // holding constant pool (required for locking) 259 const CallInfo &call_info // Call link information 260 ); 261 262 void set_dynamic_call( 263 const constantPoolHandle& cpool, // holding constant pool (required for locking) 264 const CallInfo &call_info // Call link information 265 ); 266 267 // Common code for invokedynamic and MH invocations. |