< prev index next >

src/cpu/ppc/vm/macroAssembler_ppc.hpp

Print this page
rev 7507 : 8066964: ppc64: argument and return type profiling, fix problem with popframe


 352     Register        last_java_sp,
 353     // the entry point
 354     address         entry_point,
 355     // flag which indicates if exception should be checked
 356     bool            check_exception = true
 357   );
 358 
 359   // Support for VM calls. This is the base routine called by the
 360   // different versions of call_VM_leaf. The interpreter may customize
 361   // this version by overriding it for its purposes (e.g., to
 362   // save/restore additional registers when doing a VM call).
 363   void call_VM_leaf_base(address entry_point);
 364 
 365  public:
 366   // Call into the VM.
 367   // Passes the thread pointer (in R3_ARG1) as a prepended argument.
 368   // Makes sure oop return values are visible to the GC.
 369   void call_VM(Register oop_result, address entry_point, bool check_exceptions = true);
 370   void call_VM(Register oop_result, address entry_point, Register arg_1, bool check_exceptions = true);
 371   void call_VM(Register oop_result, address entry_point, Register arg_1, Register arg_2, bool check_exceptions = true);

 372   void call_VM_leaf(address entry_point);
 373   void call_VM_leaf(address entry_point, Register arg_1);
 374   void call_VM_leaf(address entry_point, Register arg_1, Register arg_2);
 375   void call_VM_leaf(address entry_point, Register arg_1, Register arg_2, Register arg_3);
 376 
 377   // Call a stub function via a function descriptor, but don't save
 378   // TOC before call, don't setup TOC and ENV for call, and don't
 379   // restore TOC after call. Updates and returns _last_calls_return_pc.
 380   inline address call_stub(Register function_entry);
 381   inline void call_stub_and_return_to(Register function_entry, Register return_pc);
 382 
 383   //
 384   // Java utilities
 385   //
 386 
 387   // Read from the polling page, its address is already in a register.
 388   inline void load_from_polling_page(Register polling_page_address, int offset = 0);
 389   // Check whether instruction is a read access to the polling page
 390   // which was emitted by load_from_polling_page(..).
 391   static bool is_load_from_polling_page(int instruction, void* ucontext/*may be NULL*/,




 352     Register        last_java_sp,
 353     // the entry point
 354     address         entry_point,
 355     // flag which indicates if exception should be checked
 356     bool            check_exception = true
 357   );
 358 
 359   // Support for VM calls. This is the base routine called by the
 360   // different versions of call_VM_leaf. The interpreter may customize
 361   // this version by overriding it for its purposes (e.g., to
 362   // save/restore additional registers when doing a VM call).
 363   void call_VM_leaf_base(address entry_point);
 364 
 365  public:
 366   // Call into the VM.
 367   // Passes the thread pointer (in R3_ARG1) as a prepended argument.
 368   // Makes sure oop return values are visible to the GC.
 369   void call_VM(Register oop_result, address entry_point, bool check_exceptions = true);
 370   void call_VM(Register oop_result, address entry_point, Register arg_1, bool check_exceptions = true);
 371   void call_VM(Register oop_result, address entry_point, Register arg_1, Register arg_2, bool check_exceptions = true);
 372   void call_VM(Register oop_result, address entry_point, Register arg_1, Register arg_2, Register arg3, bool check_exceptions = true);
 373   void call_VM_leaf(address entry_point);
 374   void call_VM_leaf(address entry_point, Register arg_1);
 375   void call_VM_leaf(address entry_point, Register arg_1, Register arg_2);
 376   void call_VM_leaf(address entry_point, Register arg_1, Register arg_2, Register arg_3);
 377 
 378   // Call a stub function via a function descriptor, but don't save
 379   // TOC before call, don't setup TOC and ENV for call, and don't
 380   // restore TOC after call. Updates and returns _last_calls_return_pc.
 381   inline address call_stub(Register function_entry);
 382   inline void call_stub_and_return_to(Register function_entry, Register return_pc);
 383 
 384   //
 385   // Java utilities
 386   //
 387 
 388   // Read from the polling page, its address is already in a register.
 389   inline void load_from_polling_page(Register polling_page_address, int offset = 0);
 390   // Check whether instruction is a read access to the polling page
 391   // which was emitted by load_from_polling_page(..).
 392   static bool is_load_from_polling_page(int instruction, void* ucontext/*may be NULL*/,


< prev index next >