< prev index next >

src/hotspot/cpu/ppc/macroAssembler_ppc.hpp

Print this page
rev 52430 : 8213199: GC abstraction for Assembler::needs_explicit_null_check()


 650 
 651   // Check if safepoint requested and if so branch
 652   void safepoint_poll(Label& slow_path, Register temp_reg);
 653 
 654   void resolve_jobject(Register value, Register tmp1, Register tmp2, bool needs_frame);
 655 
 656   // Support for managing the JavaThread pointer (i.e.; the reference to
 657   // thread-local information).
 658 
 659   // Support for last Java frame (but use call_VM instead where possible):
 660   // access R16_thread->last_Java_sp.
 661   void set_last_Java_frame(Register last_java_sp, Register last_Java_pc);
 662   void reset_last_Java_frame(void);
 663   void set_top_ijava_frame_at_SP_as_last_Java_frame(Register sp, Register tmp1);
 664 
 665   // Read vm result from thread: oop_result = R16_thread->result;
 666   void get_vm_result  (Register oop_result);
 667   void get_vm_result_2(Register metadata_result);
 668 
 669   static bool needs_explicit_null_check(intptr_t offset);

 670 
 671   // Trap-instruction-based checks.
 672   // Range checks can be distinguished from zero checks as they check 32 bit,
 673   // zero checks all 64 bits (tw, td).
 674   inline void trap_null_check(Register a, trap_to_bits cmp = traptoEqual);
 675   static bool is_trap_null_check(int x) {
 676     return is_tdi(x, traptoEqual,               -1/*any reg*/, 0) ||
 677            is_tdi(x, traptoGreaterThanUnsigned, -1/*any reg*/, 0);
 678   }
 679 
 680   inline void trap_zombie_not_entrant();
 681   static bool is_trap_zombie_not_entrant(int x) { return is_tdi(x, traptoUnconditional, 0/*reg 0*/, 1); }
 682 
 683   inline void trap_should_not_reach_here();
 684   static bool is_trap_should_not_reach_here(int x) { return is_tdi(x, traptoUnconditional, 0/*reg 0*/, 2); }
 685 
 686   inline void trap_ic_miss_check(Register a, Register b);
 687   static bool is_trap_ic_miss_check(int x) {
 688     return is_td(x, traptoGreaterThanUnsigned | traptoLessThanUnsigned, -1/*any reg*/, -1/*any reg*/);
 689   }




 650 
 651   // Check if safepoint requested and if so branch
 652   void safepoint_poll(Label& slow_path, Register temp_reg);
 653 
 654   void resolve_jobject(Register value, Register tmp1, Register tmp2, bool needs_frame);
 655 
 656   // Support for managing the JavaThread pointer (i.e.; the reference to
 657   // thread-local information).
 658 
 659   // Support for last Java frame (but use call_VM instead where possible):
 660   // access R16_thread->last_Java_sp.
 661   void set_last_Java_frame(Register last_java_sp, Register last_Java_pc);
 662   void reset_last_Java_frame(void);
 663   void set_top_ijava_frame_at_SP_as_last_Java_frame(Register sp, Register tmp1);
 664 
 665   // Read vm result from thread: oop_result = R16_thread->result;
 666   void get_vm_result  (Register oop_result);
 667   void get_vm_result_2(Register metadata_result);
 668 
 669   static bool needs_explicit_null_check(intptr_t offset);
 670   static bool uses_implicit_null_check(void* address);
 671 
 672   // Trap-instruction-based checks.
 673   // Range checks can be distinguished from zero checks as they check 32 bit,
 674   // zero checks all 64 bits (tw, td).
 675   inline void trap_null_check(Register a, trap_to_bits cmp = traptoEqual);
 676   static bool is_trap_null_check(int x) {
 677     return is_tdi(x, traptoEqual,               -1/*any reg*/, 0) ||
 678            is_tdi(x, traptoGreaterThanUnsigned, -1/*any reg*/, 0);
 679   }
 680 
 681   inline void trap_zombie_not_entrant();
 682   static bool is_trap_zombie_not_entrant(int x) { return is_tdi(x, traptoUnconditional, 0/*reg 0*/, 1); }
 683 
 684   inline void trap_should_not_reach_here();
 685   static bool is_trap_should_not_reach_here(int x) { return is_tdi(x, traptoUnconditional, 0/*reg 0*/, 2); }
 686 
 687   inline void trap_ic_miss_check(Register a, Register b);
 688   static bool is_trap_ic_miss_check(int x) {
 689     return is_td(x, traptoGreaterThanUnsigned | traptoLessThanUnsigned, -1/*any reg*/, -1/*any reg*/);
 690   }


< prev index next >