comparison src/share/vm/runtime/frame.hpp @ 14909:4ca6dc0799b6

Backout jdk9 merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Apr 2014 13:57:07 +0200
parents d8041d695d19
children 52b4284cb496
comparison
equal deleted inserted replaced
14908:8db6e76cb658 14909:4ca6dc0799b6
44 # include "adfiles/adGlobals_zero.hpp" 44 # include "adfiles/adGlobals_zero.hpp"
45 #endif 45 #endif
46 #ifdef TARGET_ARCH_MODEL_arm 46 #ifdef TARGET_ARCH_MODEL_arm
47 # include "adfiles/adGlobals_arm.hpp" 47 # include "adfiles/adGlobals_arm.hpp"
48 #endif 48 #endif
49 #ifdef TARGET_ARCH_MODEL_ppc_32 49 #ifdef TARGET_ARCH_MODEL_ppc
50 # include "adfiles/adGlobals_ppc_32.hpp" 50 # include "adfiles/adGlobals_ppc.hpp"
51 #endif 51 #endif
52 #ifdef TARGET_ARCH_MODEL_ppc_64 52 #endif
53 # include "adfiles/adGlobals_ppc_64.hpp"
54 #endif
55 #endif // COMPILER2
56 #ifdef ZERO 53 #ifdef ZERO
57 #ifdef TARGET_ARCH_zero 54 #ifdef TARGET_ARCH_zero
58 # include "stack_zero.hpp" 55 # include "stack_zero.hpp"
59 #endif 56 #endif
60 #endif 57 #endif
312 // template based interpreter deoptimization support 309 // template based interpreter deoptimization support
313 void set_interpreter_frame_sender_sp(intptr_t* sender_sp); 310 void set_interpreter_frame_sender_sp(intptr_t* sender_sp);
314 void interpreter_frame_set_monitor_end(BasicObjectLock* value); 311 void interpreter_frame_set_monitor_end(BasicObjectLock* value);
315 #endif // CC_INTERP 312 #endif // CC_INTERP
316 313
317 // Address of the temp oop in the frame. Needed as GC root.
318 oop* interpreter_frame_temp_oop_addr() const;
319
320 // BasicObjectLocks: 314 // BasicObjectLocks:
321 // 315 //
322 // interpreter_frame_monitor_begin is higher in memory than interpreter_frame_monitor_end 316 // interpreter_frame_monitor_begin is higher in memory than interpreter_frame_monitor_end
323 // Interpreter_frame_monitor_begin points to one element beyond the oldest one, 317 // Interpreter_frame_monitor_begin points to one element beyond the oldest one,
324 // interpreter_frame_monitor_end points to the youngest one, or if there are none, 318 // interpreter_frame_monitor_end points to the youngest one, or if there are none,
351 // Method & constant pool cache 345 // Method & constant pool cache
352 Method* interpreter_frame_method() const; 346 Method* interpreter_frame_method() const;
353 void interpreter_frame_set_method(Method* method); 347 void interpreter_frame_set_method(Method* method);
354 Method** interpreter_frame_method_addr() const; 348 Method** interpreter_frame_method_addr() const;
355 ConstantPoolCache** interpreter_frame_cache_addr() const; 349 ConstantPoolCache** interpreter_frame_cache_addr() const;
350 #ifdef PPC
351 oop* interpreter_frame_mirror_addr() const;
352 #endif
356 353
357 public: 354 public:
358 // Entry frames 355 // Entry frames
359 JavaCallWrapper* entry_frame_call_wrapper() const { return *entry_frame_call_wrapper_addr(); } 356 JavaCallWrapper* entry_frame_call_wrapper() const { return *entry_frame_call_wrapper_addr(); }
360 JavaCallWrapper* entry_frame_call_wrapper_if_safe(JavaThread* thread) const; 357 JavaCallWrapper* entry_frame_call_wrapper_if_safe(JavaThread* thread) const;
417 // Conversion from an VMReg to physical stack location 414 // Conversion from an VMReg to physical stack location
418 oop* oopmapreg_to_location(VMReg reg, const RegisterMap* regmap) const; 415 oop* oopmapreg_to_location(VMReg reg, const RegisterMap* regmap) const;
419 416
420 // Oops-do's 417 // Oops-do's
421 void oops_compiled_arguments_do(Symbol* signature, bool has_receiver, bool has_appendix, const RegisterMap* reg_map, OopClosure* f); 418 void oops_compiled_arguments_do(Symbol* signature, bool has_receiver, bool has_appendix, const RegisterMap* reg_map, OopClosure* f);
422 void oops_interpreted_do(OopClosure* f, CLDClosure* cld_f, const RegisterMap* map, bool query_oop_map_cache = true); 419 void oops_interpreted_do(OopClosure* f, CLDToOopClosure* cld_f, const RegisterMap* map, bool query_oop_map_cache = true);
423 420
424 private: 421 private:
425 void oops_interpreted_arguments_do(Symbol* signature, bool has_receiver, OopClosure* f); 422 void oops_interpreted_arguments_do(Symbol* signature, bool has_receiver, OopClosure* f);
426 423
427 // Iteration of oops 424 // Iteration of oops
428 void oops_do_internal(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache); 425 void oops_do_internal(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache);
429 void oops_entry_do(OopClosure* f, const RegisterMap* map); 426 void oops_entry_do(OopClosure* f, const RegisterMap* map);
430 void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map); 427 void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map);
431 int adjust_offset(Method* method, int index); // helper for above fn 428 int adjust_offset(Method* method, int index); // helper for above fn
432 public: 429 public:
433 // Memory management 430 // Memory management
434 void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cld_f, cf, map, true); } 431 void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cld_f, cf, map, true); }
435 void nmethods_do(CodeBlobClosure* cf); 432 void nmethods_do(CodeBlobClosure* cf);
436 433
437 // RedefineClasses support for finding live interpreted methods on the stack 434 // RedefineClasses support for finding live interpreted methods on the stack
438 void metadata_do(void f(Metadata*)); 435 void metadata_do(void f(Metadata*));
439 436