Mercurial > hg > truffle
comparison src/share/vm/runtime/frame.hpp @ 6948:e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 12 Nov 2012 23:14:12 +0100 |
parents | 957c266d8bc5 da91efe96a93 |
children | 291ffc492eb6 |
comparison
equal
deleted
inserted
replaced
6711:ae13cc658b80 | 6948:e522a00b91aa |
---|---|
24 | 24 |
25 #ifndef SHARE_VM_RUNTIME_FRAME_HPP | 25 #ifndef SHARE_VM_RUNTIME_FRAME_HPP |
26 #define SHARE_VM_RUNTIME_FRAME_HPP | 26 #define SHARE_VM_RUNTIME_FRAME_HPP |
27 | 27 |
28 #include "asm/assembler.hpp" | 28 #include "asm/assembler.hpp" |
29 #include "oops/methodOop.hpp" | 29 #include "oops/method.hpp" |
30 #include "runtime/basicLock.hpp" | 30 #include "runtime/basicLock.hpp" |
31 #include "runtime/monitorChunk.hpp" | 31 #include "runtime/monitorChunk.hpp" |
32 #include "runtime/registerMap.hpp" | 32 #include "runtime/registerMap.hpp" |
33 #include "utilities/top.hpp" | 33 #include "utilities/top.hpp" |
34 #ifdef COMPILER2 | 34 #ifdef COMPILER2 |
195 jint int_at(int offset) const { return *int_at_addr(offset); } | 195 jint int_at(int offset) const { return *int_at_addr(offset); } |
196 void int_at_put(int offset, jint value) { *int_at_addr(offset) = value; } | 196 void int_at_put(int offset, jint value) { *int_at_addr(offset) = value; } |
197 | 197 |
198 oop* obj_at_addr(int offset) const { return (oop*) addr_at(offset); } | 198 oop* obj_at_addr(int offset) const { return (oop*) addr_at(offset); } |
199 | 199 |
200 oop* adjusted_obj_at_addr(methodOop method, int index) { return obj_at_addr(adjust_offset(method, index)); } | 200 oop* adjusted_obj_at_addr(Method* method, int index) { return obj_at_addr(adjust_offset(method, index)); } |
201 | 201 |
202 private: | 202 private: |
203 jint* int_at_addr(int offset) const { return (jint*) addr_at(offset); } | 203 jint* int_at_addr(int offset) const { return (jint*) addr_at(offset); } |
204 | 204 |
205 public: | 205 public: |
343 // exiting due to an exception. | 343 // exiting due to an exception. |
344 BasicType interpreter_frame_result(oop* oop_result, jvalue* value_result); | 344 BasicType interpreter_frame_result(oop* oop_result, jvalue* value_result); |
345 | 345 |
346 public: | 346 public: |
347 // Method & constant pool cache | 347 // Method & constant pool cache |
348 methodOop interpreter_frame_method() const; | 348 Method* interpreter_frame_method() const; |
349 void interpreter_frame_set_method(methodOop method); | 349 void interpreter_frame_set_method(Method* method); |
350 methodOop* interpreter_frame_method_addr() const; | 350 Method** interpreter_frame_method_addr() const; |
351 constantPoolCacheOop* interpreter_frame_cache_addr() const; | 351 ConstantPoolCache** interpreter_frame_cache_addr() const; |
352 #ifdef PPC | 352 #ifdef PPC |
353 oop* interpreter_frame_mirror_addr() const; | 353 oop* interpreter_frame_mirror_addr() const; |
354 #endif | 354 #endif |
355 | 355 |
356 public: | 356 public: |
422 | 422 |
423 // Iteration of oops | 423 // Iteration of oops |
424 void oops_do_internal(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache); | 424 void oops_do_internal(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache); |
425 void oops_entry_do(OopClosure* f, const RegisterMap* map); | 425 void oops_entry_do(OopClosure* f, const RegisterMap* map); |
426 void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map); | 426 void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map); |
427 int adjust_offset(methodOop method, int index); // helper for above fn | 427 int adjust_offset(Method* method, int index); // helper for above fn |
428 public: | 428 public: |
429 // Memory management | 429 // Memory management |
430 void oops_do(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cf, map, true); } | 430 void oops_do(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cf, map, true); } |
431 void nmethods_do(CodeBlobClosure* cf); | 431 void nmethods_do(CodeBlobClosure* cf); |
432 | |
433 // RedefineClasses support for finding live interpreted methods on the stack | |
434 void metadata_do(void f(Metadata*)); | |
432 | 435 |
433 void gc_prologue(); | 436 void gc_prologue(); |
434 void gc_epilogue(); | 437 void gc_epilogue(); |
435 void pd_gc_epilog(); | 438 void pd_gc_epilog(); |
436 | 439 |