< prev index next >

src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.hpp

Print this page

 27 #define CPU_RISCV_C2_MACROASSEMBLER_RISCV_HPP
 28 
 29 // C2_MacroAssembler contains high-level macros for C2
 30 
 31  private:
 32   // Return true if the phase output is in the scratch emit size mode.
 33   virtual bool in_scratch_emit_size() override;
 34 
 35   void element_compare(Register r1, Register r2,
 36                        Register result, Register cnt,
 37                        Register tmp1, Register tmp2,
 38                        VectorRegister vr1, VectorRegister vr2,
 39                        VectorRegister vrs,
 40                        bool is_latin, Label& DONE, Assembler::LMUL lmul);
 41 
 42   void compress_bits_v(Register dst, Register src, Register mask, bool is_long);
 43   void expand_bits_v(Register dst, Register src, Register mask, bool is_long);
 44 
 45  public:
 46   // Code used by cmpFastLock and cmpFastUnlock mach instructions in .ad file.
 47   void fast_lock(Register object, Register box, Register tmp1, Register tmp2, Register tmp3);

 48   void fast_unlock(Register object, Register box, Register tmp1, Register tmp2);

 49   // Code used by cmpFastLockLightweight and cmpFastUnlockLightweight mach instructions in .ad file.
 50   void fast_lock_lightweight(Register object, Register box, Register tmp1, Register tmp2, Register tmp3);
 51   void fast_unlock_lightweight(Register object, Register box, Register tmp1, Register tmp2, Register tmp3);


 52 
 53   void string_compare(Register str1, Register str2,
 54                       Register cnt1, Register cnt2, Register result,
 55                       Register tmp1, Register tmp2, Register tmp3,
 56                       int ae);
 57 
 58   void string_indexof_char_short(Register str1, Register cnt1,
 59                                  Register ch, Register result,
 60                                  bool isL);
 61 
 62   void string_indexof_char(Register str1, Register cnt1,
 63                            Register ch, Register result,
 64                            Register tmp1, Register tmp2,
 65                            Register tmp3, Register tmp4,
 66                            bool isL);
 67 
 68   void string_indexof(Register str1, Register str2,
 69                       Register cnt1, Register cnt2,
 70                       Register tmp1, Register tmp2,
 71                       Register tmp3, Register tmp4,

 27 #define CPU_RISCV_C2_MACROASSEMBLER_RISCV_HPP
 28 
 29 // C2_MacroAssembler contains high-level macros for C2
 30 
 31  private:
 32   // Return true if the phase output is in the scratch emit size mode.
 33   virtual bool in_scratch_emit_size() override;
 34 
 35   void element_compare(Register r1, Register r2,
 36                        Register result, Register cnt,
 37                        Register tmp1, Register tmp2,
 38                        VectorRegister vr1, VectorRegister vr2,
 39                        VectorRegister vrs,
 40                        bool is_latin, Label& DONE, Assembler::LMUL lmul);
 41 
 42   void compress_bits_v(Register dst, Register src, Register mask, bool is_long);
 43   void expand_bits_v(Register dst, Register src, Register mask, bool is_long);
 44 
 45  public:
 46   // Code used by cmpFastLock and cmpFastUnlock mach instructions in .ad file.
 47   void fast_lock(Register object, Register box,
 48                  Register tmp1, Register tmp2, Register tmp3, Register tmp4);
 49   void fast_unlock(Register object, Register box, Register tmp1, Register tmp2);
 50 
 51   // Code used by cmpFastLockLightweight and cmpFastUnlockLightweight mach instructions in .ad file.
 52   void fast_lock_lightweight(Register object, Register box,
 53                              Register tmp1, Register tmp2, Register tmp3, Register tmp4);
 54   void fast_unlock_lightweight(Register object, Register box,
 55                                Register tmp1, Register tmp2, Register tmp3);
 56 
 57   void string_compare(Register str1, Register str2,
 58                       Register cnt1, Register cnt2, Register result,
 59                       Register tmp1, Register tmp2, Register tmp3,
 60                       int ae);
 61 
 62   void string_indexof_char_short(Register str1, Register cnt1,
 63                                  Register ch, Register result,
 64                                  bool isL);
 65 
 66   void string_indexof_char(Register str1, Register cnt1,
 67                            Register ch, Register result,
 68                            Register tmp1, Register tmp2,
 69                            Register tmp3, Register tmp4,
 70                            bool isL);
 71 
 72   void string_indexof(Register str1, Register str2,
 73                       Register cnt1, Register cnt2,
 74                       Register tmp1, Register tmp2,
 75                       Register tmp3, Register tmp4,
< prev index next >