< prev index next >

src/cpu/x86/vm/macroAssembler_x86.hpp

Print this page
rev 10837 : SHA256-AVX2


 885 
 886   void fldcw(Address src) { Assembler::fldcw(src); }
 887   void fldcw(AddressLiteral src);
 888 
 889   void fld_s(int index)   { Assembler::fld_s(index); }
 890   void fld_s(Address src) { Assembler::fld_s(src); }
 891   void fld_s(AddressLiteral src);
 892 
 893   void fld_d(Address src) { Assembler::fld_d(src); }
 894   void fld_d(AddressLiteral src);
 895 
 896   void fld_x(Address src) { Assembler::fld_x(src); }
 897   void fld_x(AddressLiteral src);
 898 
 899   void fmul_s(Address src)        { Assembler::fmul_s(src); }
 900   void fmul_s(AddressLiteral src) { Assembler::fmul_s(as_Address(src)); }
 901 
 902   void ldmxcsr(Address src) { Assembler::ldmxcsr(src); }
 903   void ldmxcsr(AddressLiteral src);
 904 







































 905   void fast_sha1(XMMRegister abcd, XMMRegister e0, XMMRegister e1, XMMRegister msg0,
 906                  XMMRegister msg1, XMMRegister msg2, XMMRegister msg3, XMMRegister shuf_mask,
 907                  Register buf, Register state, Register ofs, Register limit, Register rsp,
 908                  bool multi_block);
 909 
 910 #ifdef _LP64
 911   void fast_sha256(XMMRegister msg, XMMRegister state0, XMMRegister state1, XMMRegister msgtmp0,
 912                    XMMRegister msgtmp1, XMMRegister msgtmp2, XMMRegister msgtmp3, XMMRegister msgtmp4,
 913                    Register buf, Register state, Register ofs, Register limit, Register rsp,
 914                    bool multi_block, XMMRegister shuf_mask);
 915 #else
 916   void fast_sha256(XMMRegister msg, XMMRegister state0, XMMRegister state1, XMMRegister msgtmp0,
 917                    XMMRegister msgtmp1, XMMRegister msgtmp2, XMMRegister msgtmp3, XMMRegister msgtmp4,
 918                    Register buf, Register state, Register ofs, Register limit, Register rsp,
 919                    bool multi_block);
 920 #endif
 921 
 922   void fast_exp(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 923                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 924                 Register rax, Register rcx, Register rdx, Register tmp);




 885 
 886   void fldcw(Address src) { Assembler::fldcw(src); }
 887   void fldcw(AddressLiteral src);
 888 
 889   void fld_s(int index)   { Assembler::fld_s(index); }
 890   void fld_s(Address src) { Assembler::fld_s(src); }
 891   void fld_s(AddressLiteral src);
 892 
 893   void fld_d(Address src) { Assembler::fld_d(src); }
 894   void fld_d(AddressLiteral src);
 895 
 896   void fld_x(Address src) { Assembler::fld_x(src); }
 897   void fld_x(AddressLiteral src);
 898 
 899   void fmul_s(Address src)        { Assembler::fmul_s(src); }
 900   void fmul_s(AddressLiteral src) { Assembler::fmul_s(as_Address(src)); }
 901 
 902   void ldmxcsr(Address src) { Assembler::ldmxcsr(src); }
 903   void ldmxcsr(AddressLiteral src);
 904 
 905 #ifdef _LP64
 906  private:
 907   void sha256_AVX2_one_round_compute(
 908     Register  reg_old_h,
 909     Register  reg_a,
 910     Register  reg_b,
 911     Register  reg_c,
 912     Register  reg_d,
 913     Register  reg_e,
 914     Register  reg_f,
 915     Register  reg_g,
 916     Register  reg_h,
 917     int iter);
 918   void sha256_AVX2_four_rounds_compute_first(int start);
 919   void sha256_AVX2_four_rounds_compute_last(int start);
 920   void sha256_AVX2_one_round_and_sched(
 921         XMMRegister xmm_0,     /* == ymm4 on 0, 1, 2, 3 iterations, then rotate 4 registers left on 4, 8, 12 iterations */
 922         XMMRegister xmm_1,     /* ymm5 */  /* full cycle is 16 iterations */
 923         XMMRegister xmm_2,     /* ymm6 */
 924         XMMRegister xmm_3,     /* ymm7 */
 925         Register    reg_a,      /* == eax on 0 iteration, then rotate 8 register right on each next iteration */
 926         Register    reg_b,      /* ebx */    /* full cycle is 8 iterations */
 927         Register    reg_c,      /* edi */
 928         Register    reg_d,      /* esi */
 929         Register    reg_e,      /* r8d */
 930         Register    reg_f,      /* r9d */
 931         Register    reg_g,      /* r10d */
 932         Register    reg_h,      /* r11d */
 933         int iter);
 934 
 935   void addm(int disp, Register r1, Register r2);
 936 
 937  public:
 938   void sha256_AVX2(XMMRegister msg, XMMRegister state0, XMMRegister state1, XMMRegister msgtmp0,
 939                    XMMRegister msgtmp1, XMMRegister msgtmp2, XMMRegister msgtmp3, XMMRegister msgtmp4,
 940                    Register buf, Register state, Register ofs, Register limit, Register rsp,
 941                    bool multi_block, XMMRegister shuf_mask);
 942 #endif
 943 
 944   void fast_sha1(XMMRegister abcd, XMMRegister e0, XMMRegister e1, XMMRegister msg0,
 945                  XMMRegister msg1, XMMRegister msg2, XMMRegister msg3, XMMRegister shuf_mask,
 946                  Register buf, Register state, Register ofs, Register limit, Register rsp,
 947                  bool multi_block);
 948 
 949 #ifdef _LP64
 950   void fast_sha256(XMMRegister msg, XMMRegister state0, XMMRegister state1, XMMRegister msgtmp0,
 951                    XMMRegister msgtmp1, XMMRegister msgtmp2, XMMRegister msgtmp3, XMMRegister msgtmp4,
 952                    Register buf, Register state, Register ofs, Register limit, Register rsp,
 953                    bool multi_block, XMMRegister shuf_mask);
 954 #else
 955   void fast_sha256(XMMRegister msg, XMMRegister state0, XMMRegister state1, XMMRegister msgtmp0,
 956                    XMMRegister msgtmp1, XMMRegister msgtmp2, XMMRegister msgtmp3, XMMRegister msgtmp4,
 957                    Register buf, Register state, Register ofs, Register limit, Register rsp,
 958                    bool multi_block);
 959 #endif
 960 
 961   void fast_exp(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 962                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 963                 Register rax, Register rcx, Register rdx, Register tmp);


< prev index next >