< prev index next >

src/hotspot/cpu/s390/macroAssembler_s390.hpp

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


 762   void set_thread_state(JavaThreadState new_state);
 763 
 764   // Read vm result from thread.
 765   void get_vm_result  (Register oop_result);
 766   void get_vm_result_2(Register result);
 767 
 768   // Vm result is currently getting hijacked to for oop preservation.
 769   void set_vm_result(Register oop_result);
 770 
 771   // Support for NULL-checks
 772   //
 773   // Generates code that causes a NULL OS exception if the content of reg is NULL.
 774   // If the accessed location is M[reg + offset] and the offset is known, provide the
 775   // offset. No explicit code generation is needed if the offset is within a certain
 776   // range (0 <= offset <= page_size).
 777   //
 778   // %%%%%% Currently not done for z/Architecture
 779 
 780   void null_check(Register reg, Register tmp = Z_R0, int64_t offset = -1);
 781   static bool needs_explicit_null_check(intptr_t offset);  // Implemented in shared file ?!

 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);
 801 




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


< prev index next >