< prev index next >

src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp

Print this page
@@ -140,10 +140,12 @@
    void evpcmp(BasicType typ, KRegister kdmask, KRegister ksmask, XMMRegister src1, AddressLiteral adr, int comparison, int vector_len, Register scratch = rscratch1);
    void evpcmp(BasicType typ, KRegister kdmask, KRegister ksmask, XMMRegister src1, XMMRegister src2, int comparison, int vector_len);
    void evpblend(BasicType typ, XMMRegister dst, KRegister kmask, XMMRegister src1, XMMRegister src2, bool merge, int vector_len);
  
    void load_vector_mask(XMMRegister dst, XMMRegister src, int vlen_in_bytes, BasicType elem_bt, bool is_legacy);
+   void load_vector_mask(KRegister dst, XMMRegister src, XMMRegister xtmp, Register tmp, bool novlbwdq, int vlen_enc);
+ 
    void load_iota_indices(XMMRegister dst, Register scratch, int vlen_in_bytes);
  
    // vector compare
    void vpcmpu(BasicType typ, XMMRegister dst, XMMRegister src1, XMMRegister src2, ComparisonPredicate comparison, int vlen_in_bytes,
                XMMRegister vtmp1, XMMRegister vtmp2, Register scratch);

@@ -220,15 +222,14 @@
    void reduce_operation_128(BasicType typ, int opcode, XMMRegister dst, XMMRegister src);
    void reduce_operation_256(BasicType typ, int opcode, XMMRegister dst, XMMRegister src1, XMMRegister src2);
  
   public:
  #ifdef _LP64
-   void vector_mask_operation(int opc, Register dst, XMMRegister mask, XMMRegister xtmp, Register tmp,
-                              KRegister ktmp, int masklen, int vec_enc);
+   void vector_mask_operation(int opc, Register dst, KRegister mask, Register tmp, int masklen, int masksize, int vec_enc);
  
    void vector_mask_operation(int opc, Register dst, XMMRegister mask, XMMRegister xtmp, XMMRegister xtmp1,
-                              Register tmp, int masklen, int vec_enc);
+                              Register tmp, int masklen, int masksize, int vec_enc);
  #endif
    void string_indexof_char(Register str1, Register cnt1, Register ch, Register result,
                             XMMRegister vec1, XMMRegister vec2, XMMRegister vec3, Register tmp);
  
    void stringL_indexof_char(Register str1, Register cnt1, Register ch, Register result,

@@ -271,6 +272,20 @@
    // Compare char[] or byte[] arrays.
    void arrays_equals(bool is_array_equ, Register ary1, Register ary2,
                       Register limit, Register result, Register chr,
                       XMMRegister vec1, XMMRegister vec2, bool is_char, KRegister mask = knoreg);
  
+ 
+   void evmasked_op(int ideal_opc, BasicType eType, KRegister mask,
+                    XMMRegister dst, XMMRegister src1, XMMRegister src2,
+                    bool merge, int vlen_enc, bool is_varshift = false);
+ 
+   void evmasked_op(int ideal_opc, BasicType eType, KRegister mask,
+                    XMMRegister dst, XMMRegister src1, Address src2,
+                    bool merge, int vlen_enc);
+ 
+   void evmasked_op(int ideal_opc, BasicType eType, KRegister mask, XMMRegister dst,
+                    XMMRegister src1, int imm8, bool merge, int vlen_enc);
+ 
+   void masked_op(int ideal_opc, int mask_len, KRegister dst,
+                  KRegister src1, KRegister src2);
  #endif // CPU_X86_C2_MACROASSEMBLER_X86_HPP
< prev index next >