< prev index next >

src/hotspot/cpu/ppc/macroAssembler_ppc.hpp


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

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