< prev index next >

src/hotspot/cpu/x86/assembler_x86.hpp

Print this page
*** 1460,12 ***
--- 1460,27 ---
    void movb(Address dst, int imm8);
    void movb(Register dst, Address src);
  
    void movddup(XMMRegister dst, XMMRegister src);
  
+   void kandbl(KRegister dst, KRegister src1, KRegister src2);
+   void kandwl(KRegister dst, KRegister src1, KRegister src2);
+   void kanddl(KRegister dst, KRegister src1, KRegister src2);
+   void kandql(KRegister dst, KRegister src1, KRegister src2);
+ 
+   void korbl(KRegister dst, KRegister src1, KRegister src2);
+   void korwl(KRegister dst, KRegister src1, KRegister src2);
+   void kordl(KRegister dst, KRegister src1, KRegister src2);
+   void korql(KRegister dst, KRegister src1, KRegister src2);
+ 
+   void kxorbl(KRegister dst, KRegister src1, KRegister src2);
+   void kxorwl(KRegister dst, KRegister src1, KRegister src2);
+   void kxordl(KRegister dst, KRegister src1, KRegister src2);
+   void kxorql(KRegister dst, KRegister src1, KRegister src2);
    void kmovbl(KRegister dst, Register src);
    void kmovbl(Register dst, KRegister src);
+   void kmovbl(KRegister dst, KRegister src);
    void kmovwl(KRegister dst, Register src);
    void kmovwl(KRegister dst, Address src);
    void kmovwl(Register dst, KRegister src);
    void kmovwl(Address dst, KRegister src);
    void kmovwl(KRegister dst, KRegister src);

*** 1475,22 ***
--- 1490,33 ---
    void kmovql(Address dst, KRegister src);
    void kmovql(KRegister dst, Address src);
    void kmovql(KRegister dst, Register src);
    void kmovql(Register dst, KRegister src);
  
+   void knotbl(KRegister dst, KRegister src);
    void knotwl(KRegister dst, KRegister src);
+   void knotdl(KRegister dst, KRegister src);
    void knotql(KRegister dst, KRegister src);
  
    void kortestbl(KRegister dst, KRegister src);
    void kortestwl(KRegister dst, KRegister src);
    void kortestdl(KRegister dst, KRegister src);
    void kortestql(KRegister dst, KRegister src);
  
+   void kxnorbl(KRegister dst, KRegister src1, KRegister src2);
+   void kshiftlbl(KRegister dst, KRegister src, int imm8);
+   void kshiftrbl(KRegister dst, KRegister src, int imm8);
+   void kshiftrwl(KRegister dst, KRegister src, int imm8);
+   void kshiftrdl(KRegister dst, KRegister src, int imm8);
+   void kshiftrql(KRegister dst, KRegister src, int imm8);
    void ktestq(KRegister src1, KRegister src2);
    void ktestd(KRegister src1, KRegister src2);
  
    void ktestql(KRegister dst, KRegister src);
+   void ktestdl(KRegister dst, KRegister src);
+   void ktestwl(KRegister dst, KRegister src);
+   void ktestbl(KRegister dst, KRegister src);
  
    void movdl(XMMRegister dst, Register src);
    void movdl(Register dst, XMMRegister src);
    void movdl(XMMRegister dst, Address src);
    void movdl(Address dst, XMMRegister src);

*** 2150,13 ***
    void shrxq(Register dst, Register src1, Register src2);
  
    void bzhiq(Register dst, Register src1, Register src2);
  
    //====================VECTOR ARITHMETIC=====================================
-   void evpmovd2m(KRegister kdst, XMMRegister src, int vector_len);
-   void evpmovq2m(KRegister kdst, XMMRegister src, int vector_len);
- 
    // Add Packed Floating-Point Values
    void addpd(XMMRegister dst, XMMRegister src);
    void addpd(XMMRegister dst, Address src);
    void addps(XMMRegister dst, XMMRegister src);
    void vaddpd(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len);
--- 2176,10 ---

*** 2244,10 ***
--- 2267,140 ---
    void vpaddb(XMMRegister dst, XMMRegister nds, Address src, int vector_len);
    void vpaddw(XMMRegister dst, XMMRegister nds, Address src, int vector_len);
    void vpaddd(XMMRegister dst, XMMRegister nds, Address src, int vector_len);
    void vpaddq(XMMRegister dst, XMMRegister nds, Address src, int vector_len);
  
+   // Leaf level assembler routines for masked operations.
+   void evpaddb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpaddb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpaddw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpaddw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpaddd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpaddd(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpaddq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpaddq(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evaddps(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evaddps(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evaddpd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evaddpd(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpsubb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsubb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpsubw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsubw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpsubd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsubd(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpsubq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsubq(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evsubps(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evsubps(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evsubpd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evsubpd(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpmullw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpmullw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpmulld(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpmulld(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpmullq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpmullq(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evmulps(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evmulps(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evmulpd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evmulpd(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evdivps(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evdivps(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evdivpd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evdivpd(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpabsb(XMMRegister dst, KRegister mask, XMMRegister src, bool merge, int vector_len);
+   void evpabsb(XMMRegister dst, KRegister mask, Address src, bool merge, int vector_len);
+   void evpabsw(XMMRegister dst, KRegister mask, XMMRegister src, bool merge, int vector_len);
+   void evpabsw(XMMRegister dst, KRegister mask, Address src, bool merge, int vector_len);
+   void evpabsd(XMMRegister dst, KRegister mask, XMMRegister src, bool merge, int vector_len);
+   void evpabsd(XMMRegister dst, KRegister mask, Address src, bool merge, int vector_len);
+   void evpabsq(XMMRegister dst, KRegister mask, XMMRegister src, bool merge, int vector_len);
+   void evpabsq(XMMRegister dst, KRegister mask, Address src, bool merge, int vector_len);
+   void evpfma213ps(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpfma213ps(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpfma213pd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpfma213pd(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpermb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpermb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpermw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpermw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpermd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpermd(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpermq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpermq(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpsllw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpslld(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsllq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsrlw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsrld(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsrlq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsraw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsrad(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsraq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evsqrtps(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evsqrtps(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evsqrtpd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evsqrtpd(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+ 
+   void evpsllw(XMMRegister dst, KRegister mask, XMMRegister src, int shift, bool merge, int vector_len);
+   void evpslld(XMMRegister dst, KRegister mask, XMMRegister src, int shift, bool merge, int vector_len);
+   void evpsllq(XMMRegister dst, KRegister mask, XMMRegister src, int shift, bool merge, int vector_len);
+   void evpsrlw(XMMRegister dst, KRegister mask, XMMRegister src, int shift, bool merge, int vector_len);
+   void evpsrld(XMMRegister dst, KRegister mask, XMMRegister src, int shift, bool merge, int vector_len);
+   void evpsrlq(XMMRegister dst, KRegister mask, XMMRegister src, int shift, bool merge, int vector_len);
+   void evpsraw(XMMRegister dst, KRegister mask, XMMRegister src, int shift, bool merge, int vector_len);
+   void evpsrad(XMMRegister dst, KRegister mask, XMMRegister src, int shift, bool merge, int vector_len);
+   void evpsraq(XMMRegister dst, KRegister mask, XMMRegister src, int shift, bool merge, int vector_len);
+ 
+   void evpsllvw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsllvd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsllvq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsrlvw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsrlvd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsrlvq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsravw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsravd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpsravq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpmaxsb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpmaxsw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpmaxsd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpmaxsq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpminsb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpminsw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpminsd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpminsq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpmaxsb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpmaxsw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpmaxsd(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpmaxsq(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpminsb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpminsw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpminsd(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpminsq(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpord(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpord(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evporq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evporq(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpandd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpandd(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpandq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpandq(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpxord(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpxord(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+   void evpxorq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evpxorq(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
+ 
+   void evprold(XMMRegister dst, KRegister mask, XMMRegister src, int shift, bool merge, int vector_len);
+   void evprolq(XMMRegister dst, KRegister mask, XMMRegister src, int shift, bool merge, int vector_len);
+   void evprolvd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evprolvq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evprord(XMMRegister dst, KRegister mask, XMMRegister src, int shift, bool merge, int vector_len);
+   void evprorq(XMMRegister dst, KRegister mask, XMMRegister src, int shift, bool merge, int vector_len);
+   void evprorvd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+   void evprorvq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
+ 
    // Sub packed integers
    void psubb(XMMRegister dst, XMMRegister src);
    void psubw(XMMRegister dst, XMMRegister src);
    void psubd(XMMRegister dst, XMMRegister src);
    void psubq(XMMRegister dst, XMMRegister src);

*** 2362,11 ***
  
    // And packed integers
    void pand(XMMRegister dst, XMMRegister src);
    void vpand(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len);
    void vpand(XMMRegister dst, XMMRegister nds, Address src, int vector_len);
-   void evpandd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
    void vpandq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len);
  
    // Andn packed integers
    void pandn(XMMRegister dst, XMMRegister src);
    void vpandn(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len);
--- 2515,10 ---

*** 2375,19 ***
    void por(XMMRegister dst, XMMRegister src);
    void vpor(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len);
    void vpor(XMMRegister dst, XMMRegister nds, Address src, int vector_len);
    void vporq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len);
  
-   void evpord(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
-   void evpord(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len);
- 
    // Xor packed integers
    void pxor(XMMRegister dst, XMMRegister src);
    void vpxor(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len);
    void vpxor(XMMRegister dst, XMMRegister nds, Address src, int vector_len);
    void vpxorq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len);
-   void evpxord(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len);
    void evpxorq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len);
    void evpxorq(XMMRegister dst, XMMRegister nds, Address src, int vector_len);
  
    // Ternary logic instruction.
    void vpternlogd(XMMRegister dst, int imm8, XMMRegister src2, XMMRegister src3, int vector_len);
--- 2527,15 ---

*** 2525,10 ***
--- 2673,17 ---
                 int comparison, bool is_signed, int vector_len);
    void evpcmpw(KRegister kdst, KRegister mask, XMMRegister nds, Address src,
                 int comparison, bool is_signed, int vector_len);
  
    void evpmovb2m(KRegister dst, XMMRegister src, int vector_len);
+   void evpmovw2m(KRegister dst, XMMRegister src, int vector_len);
+   void evpmovd2m(KRegister dst, XMMRegister src, int vector_len);
+   void evpmovq2m(KRegister dst, XMMRegister src, int vector_len);
+   void evpmovm2b(XMMRegister dst, KRegister src, int vector_len);
+   void evpmovm2w(XMMRegister dst, KRegister src, int vector_len);
+   void evpmovm2d(XMMRegister dst, KRegister src, int vector_len);
+   void evpmovm2q(XMMRegister dst, KRegister src, int vector_len);
  
    // Vector blends
    void blendvps(XMMRegister dst, XMMRegister src);
    void blendvpd(XMMRegister dst, XMMRegister src);
    void pblendvb(XMMRegister dst, XMMRegister src);
< prev index next >