src/hotspot/cpu/s390/macroAssembler_s390.hpp
changeset 58959 b7b170ba3ba9
parent 55343 03d417fd7d9a
equal deleted inserted replaced
58958:7bfe7df764a2 58959:b7b170ba3ba9
   848   //   Restores: src, dst
   848   //   Restores: src, dst
   849   //   Uses:     cnt
   849   //   Uses:     cnt
   850   //   Kills:    tmp, Z_R0, Z_R1.
   850   //   Kills:    tmp, Z_R0, Z_R1.
   851   //   Early clobber: result.
   851   //   Early clobber: result.
   852   //   Boolean precise controls accuracy of result value.
   852   //   Boolean precise controls accuracy of result value.
       
   853 #ifdef COMPILER2
   853   unsigned int string_compress(Register result, Register src, Register dst, Register cnt,
   854   unsigned int string_compress(Register result, Register src, Register dst, Register cnt,
   854                                Register tmp,    bool precise);
   855                                Register tmp,    bool precise);
   855 
   856 
   856   // Inflate byte[] to char[].
   857   // Inflate byte[] to char[].
   857   unsigned int string_inflate_trot(Register src, Register dst, Register cnt, Register tmp);
   858   unsigned int string_inflate_trot(Register src, Register dst, Register cnt, Register tmp);
   883                               Register needle, Register needlecnt, int needlecntval,
   884                               Register needle, Register needlecnt, int needlecntval,
   884                               Register odd_reg, Register even_reg, int ae);
   885                               Register odd_reg, Register even_reg, int ae);
   885 
   886 
   886   unsigned int string_indexof_char(Register result, Register haystack, Register haycnt,
   887   unsigned int string_indexof_char(Register result, Register haystack, Register haycnt,
   887                                    Register needle, jchar needleChar, Register odd_reg, Register even_reg, bool is_byte);
   888                                    Register needle, jchar needleChar, Register odd_reg, Register even_reg, bool is_byte);
       
   889 #endif
   888 
   890 
   889   // Emit an oop const to the constant pool and set a relocation info
   891   // Emit an oop const to the constant pool and set a relocation info
   890   // with address current_pc. Return the TOC offset of the constant.
   892   // with address current_pc. Return the TOC offset of the constant.
   891   int store_const_in_toc(AddressLiteral& val);
   893   int store_const_in_toc(AddressLiteral& val);
   892   int store_oop_in_toc(AddressLiteral& oop);
   894   int store_oop_in_toc(AddressLiteral& oop);
   915   static bool is_load_const_call(address a);
   917   static bool is_load_const_call(address a);
   916   static int load_const_call_size() { return load_const_size() + call_byregister_size(); }
   918   static int load_const_call_size() { return load_const_size() + call_byregister_size(); }
   917   static int load_const_from_toc_call_size() { return load_const_from_toc_size() + call_byregister_size(); }
   919   static int load_const_from_toc_call_size() { return load_const_from_toc_size() + call_byregister_size(); }
   918   // Offset is +/- 2**32 -> use long.
   920   // Offset is +/- 2**32 -> use long.
   919   static long get_load_const_from_toc_offset(address a);
   921   static long get_load_const_from_toc_offset(address a);
   920 
       
   921 
       
   922   void generate_type_profiling(const Register Rdata,
       
   923                                const Register Rreceiver_klass,
       
   924                                const Register Rwanted_receiver_klass,
       
   925                                const Register Rmatching_row,
       
   926                                bool is_virtual_call);
       
   927 
   922 
   928   // Bit operations for single register operands.
   923   // Bit operations for single register operands.
   929   inline void lshift(Register r, int places, bool doubl = true);   // <<
   924   inline void lshift(Register r, int places, bool doubl = true);   // <<
   930   inline void rshift(Register r, int places, bool doubl = true);   // >>
   925   inline void rshift(Register r, int places, bool doubl = true);   // >>
   931 
   926