Mercurial > hg > truffle
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 |