< prev index next >

src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp

Print this page

 60 
 61   void sve_minmaxv(bool is_unsigned, bool is_min, FloatRegister dst,
 62                    SIMD_RegVariant size, PRegister pg, FloatRegister src) {
 63     auto m = is_unsigned ? (is_min ? &Assembler::sve_uminv : &Assembler::sve_umaxv)
 64                          : (is_min ? &Assembler::sve_sminv : &Assembler::sve_smaxv);
 65     (this->*m)(dst, size, pg, src);
 66   }
 67 
 68   void select_from_two_vectors_neon(FloatRegister dst, FloatRegister src1,
 69                                     FloatRegister src2, FloatRegister index,
 70                                     FloatRegister tmp, unsigned vector_length_in_bytes);
 71 
 72   void select_from_two_vectors_sve(FloatRegister dst, FloatRegister src1,
 73                                    FloatRegister src2, FloatRegister index,
 74                                    FloatRegister tmp, SIMD_RegVariant T,
 75                                    unsigned vector_length_in_bytes);
 76 
 77  public:
 78   using Assembler::sve_cpy;
 79 


 80   // jdk.internal.util.ArraysSupport.vectorizedHashCode
 81   address arrays_hashcode(Register ary, Register cnt, Register result, FloatRegister vdata0,
 82                           FloatRegister vdata1, FloatRegister vdata2, FloatRegister vdata3,
 83                           FloatRegister vmul0, FloatRegister vmul1, FloatRegister vmul2,
 84                           FloatRegister vmul3, FloatRegister vpow, FloatRegister vpowm,
 85                           BasicType eltype);
 86 
 87   // Code used by cmpFastLock and cmpFastUnlock mach instructions in .ad file.
 88   void fast_lock(Register object, Register box, Register t1, Register t2, Register t3);
 89   void fast_unlock(Register object, Register box, Register t1, Register t2, Register t3);
 90 
 91   void string_compare(Register str1, Register str2,
 92                       Register cnt1, Register cnt2, Register result,
 93                       Register tmp1, Register tmp2, FloatRegister vtmp1,
 94                       FloatRegister vtmp2, FloatRegister vtmp3,
 95                       PRegister pgtmp1, PRegister pgtmp2, int ae);
 96 
 97   void string_indexof(Register str1, Register str2,
 98                       Register cnt1, Register cnt2,
 99                       Register tmp1, Register tmp2,

 60 
 61   void sve_minmaxv(bool is_unsigned, bool is_min, FloatRegister dst,
 62                    SIMD_RegVariant size, PRegister pg, FloatRegister src) {
 63     auto m = is_unsigned ? (is_min ? &Assembler::sve_uminv : &Assembler::sve_umaxv)
 64                          : (is_min ? &Assembler::sve_sminv : &Assembler::sve_smaxv);
 65     (this->*m)(dst, size, pg, src);
 66   }
 67 
 68   void select_from_two_vectors_neon(FloatRegister dst, FloatRegister src1,
 69                                     FloatRegister src2, FloatRegister index,
 70                                     FloatRegister tmp, unsigned vector_length_in_bytes);
 71 
 72   void select_from_two_vectors_sve(FloatRegister dst, FloatRegister src1,
 73                                    FloatRegister src2, FloatRegister index,
 74                                    FloatRegister tmp, SIMD_RegVariant T,
 75                                    unsigned vector_length_in_bytes);
 76 
 77  public:
 78   using Assembler::sve_cpy;
 79 
 80   void entry_barrier();
 81 
 82   // jdk.internal.util.ArraysSupport.vectorizedHashCode
 83   address arrays_hashcode(Register ary, Register cnt, Register result, FloatRegister vdata0,
 84                           FloatRegister vdata1, FloatRegister vdata2, FloatRegister vdata3,
 85                           FloatRegister vmul0, FloatRegister vmul1, FloatRegister vmul2,
 86                           FloatRegister vmul3, FloatRegister vpow, FloatRegister vpowm,
 87                           BasicType eltype);
 88 
 89   // Code used by cmpFastLock and cmpFastUnlock mach instructions in .ad file.
 90   void fast_lock(Register object, Register box, Register t1, Register t2, Register t3);
 91   void fast_unlock(Register object, Register box, Register t1, Register t2, Register t3);
 92 
 93   void string_compare(Register str1, Register str2,
 94                       Register cnt1, Register cnt2, Register result,
 95                       Register tmp1, Register tmp2, FloatRegister vtmp1,
 96                       FloatRegister vtmp2, FloatRegister vtmp3,
 97                       PRegister pgtmp1, PRegister pgtmp2, int ae);
 98 
 99   void string_indexof(Register str1, Register str2,
100                       Register cnt1, Register cnt2,
101                       Register tmp1, Register tmp2,
< prev index next >