< prev index next >

src/hotspot/cpu/s390/macroAssembler_s390.hpp


761   void set_thread_state(JavaThreadState new_state);                                                                                  
762 
763   // Read vm result from thread.                                                                                                     
764   void get_vm_result  (Register oop_result);                                                                                         
765   void get_vm_result_2(Register result);                                                                                             
766 
767   // Vm result is currently getting hijacked to for oop preservation.                                                                
768   void set_vm_result(Register oop_result);                                                                                           
769 
770   // Support for NULL-checks                                                                                                         
771   //                                                                                                                                 
772   // Generates code that causes a NULL OS exception if the content of reg is NULL.                                                   
773   // If the accessed location is M[reg + offset] and the offset is known, provide the                                                
774   // offset. No explicit code generation is needed if the offset is within a certain                                                 
775   // range (0 <= offset <= page_size).                                                                                               
776   //                                                                                                                                 
777   // %%%%%% Currently not done for z/Architecture                                                                                    
778 
779   void null_check(Register reg, Register tmp = Z_R0, int64_t offset = -1);                                                           
780   static bool needs_explicit_null_check(intptr_t offset);  // Implemented in shared file ?!                                          
                                                                                                                                     
781 
782   // Klass oop manipulations if compressed.                                                                                          
783   void encode_klass_not_null(Register dst, Register src = noreg);                                                                    
784   void decode_klass_not_null(Register dst, Register src);                                                                            
785   void decode_klass_not_null(Register dst);                                                                                          
786   void load_klass(Register klass, Address mem);                                                                                      
787   void load_klass(Register klass, Register src_oop);                                                                                 
788   void load_prototype_header(Register Rheader, Register Rsrc_oop);                                                                   
789   void store_klass(Register klass, Register dst_oop, Register ck = noreg); // Klass will get compressed if ck not provided.          
790   void store_klass_gap(Register s, Register dst_oop);                                                                                
791 
792   // This function calculates the size of the code generated by                                                                      
793   //   decode_klass_not_null(register dst)                                                                                           
794   // when (Universe::heap() != NULL). Hence, if the instructions                                                                     
795   // it generates change, then this method needs to be updated.                                                                      
796   static int instr_size_for_decode_klass_not_null();                                                                                 
797 
798   void encode_heap_oop(Register oop);                                                                                                
799   void encode_heap_oop_not_null(Register oop);                                                                                       

761   void set_thread_state(JavaThreadState new_state);
762 
763   // Read vm result from thread.
764   void get_vm_result  (Register oop_result);
765   void get_vm_result_2(Register result);
766 
767   // Vm result is currently getting hijacked to for oop preservation.
768   void set_vm_result(Register oop_result);
769 
770   // Support for NULL-checks
771   //
772   // Generates code that causes a NULL OS exception if the content of reg is NULL.
773   // If the accessed location is M[reg + offset] and the offset is known, provide the
774   // offset. No explicit code generation is needed if the offset is within a certain
775   // range (0 <= offset <= page_size).
776   //
777   // %%%%%% Currently not done for z/Architecture
778 
779   void null_check(Register reg, Register tmp = Z_R0, int64_t offset = -1);
780   static bool needs_explicit_null_check(intptr_t offset);  // Implemented in shared file ?!
781   static bool uses_implicit_null_check(void* address);
782 
783   // Klass oop manipulations if compressed.
784   void encode_klass_not_null(Register dst, Register src = noreg);
785   void decode_klass_not_null(Register dst, Register src);
786   void decode_klass_not_null(Register dst);
787   void load_klass(Register klass, Address mem);
788   void load_klass(Register klass, Register src_oop);
789   void load_prototype_header(Register Rheader, Register Rsrc_oop);
790   void store_klass(Register klass, Register dst_oop, Register ck = noreg); // Klass will get compressed if ck not provided.
791   void store_klass_gap(Register s, Register dst_oop);
792 
793   // This function calculates the size of the code generated by
794   //   decode_klass_not_null(register dst)
795   // when (Universe::heap() != NULL). Hence, if the instructions
796   // it generates change, then this method needs to be updated.
797   static int instr_size_for_decode_klass_not_null();
798 
799   void encode_heap_oop(Register oop);
800   void encode_heap_oop_not_null(Register oop);
< prev index next >