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