904 void fmul_s(AddressLiteral src) { Assembler::fmul_s(as_Address(src)); } |
904 void fmul_s(AddressLiteral src) { Assembler::fmul_s(as_Address(src)); } |
905 |
905 |
906 void ldmxcsr(Address src) { Assembler::ldmxcsr(src); } |
906 void ldmxcsr(Address src) { Assembler::ldmxcsr(src); } |
907 void ldmxcsr(AddressLiteral src); |
907 void ldmxcsr(AddressLiteral src); |
908 |
908 |
|
909 #ifdef _LP64 |
|
910 private: |
|
911 void sha256_AVX2_one_round_compute( |
|
912 Register reg_old_h, |
|
913 Register reg_a, |
|
914 Register reg_b, |
|
915 Register reg_c, |
|
916 Register reg_d, |
|
917 Register reg_e, |
|
918 Register reg_f, |
|
919 Register reg_g, |
|
920 Register reg_h, |
|
921 int iter); |
|
922 void sha256_AVX2_four_rounds_compute_first(int start); |
|
923 void sha256_AVX2_four_rounds_compute_last(int start); |
|
924 void sha256_AVX2_one_round_and_sched( |
|
925 XMMRegister xmm_0, /* == ymm4 on 0, 1, 2, 3 iterations, then rotate 4 registers left on 4, 8, 12 iterations */ |
|
926 XMMRegister xmm_1, /* ymm5 */ /* full cycle is 16 iterations */ |
|
927 XMMRegister xmm_2, /* ymm6 */ |
|
928 XMMRegister xmm_3, /* ymm7 */ |
|
929 Register reg_a, /* == eax on 0 iteration, then rotate 8 register right on each next iteration */ |
|
930 Register reg_b, /* ebx */ /* full cycle is 8 iterations */ |
|
931 Register reg_c, /* edi */ |
|
932 Register reg_d, /* esi */ |
|
933 Register reg_e, /* r8d */ |
|
934 Register reg_f, /* r9d */ |
|
935 Register reg_g, /* r10d */ |
|
936 Register reg_h, /* r11d */ |
|
937 int iter); |
|
938 |
|
939 void addm(int disp, Register r1, Register r2); |
|
940 |
|
941 public: |
|
942 void sha256_AVX2(XMMRegister msg, XMMRegister state0, XMMRegister state1, XMMRegister msgtmp0, |
|
943 XMMRegister msgtmp1, XMMRegister msgtmp2, XMMRegister msgtmp3, XMMRegister msgtmp4, |
|
944 Register buf, Register state, Register ofs, Register limit, Register rsp, |
|
945 bool multi_block, XMMRegister shuf_mask); |
|
946 #endif |
|
947 |
909 void fast_sha1(XMMRegister abcd, XMMRegister e0, XMMRegister e1, XMMRegister msg0, |
948 void fast_sha1(XMMRegister abcd, XMMRegister e0, XMMRegister e1, XMMRegister msg0, |
910 XMMRegister msg1, XMMRegister msg2, XMMRegister msg3, XMMRegister shuf_mask, |
949 XMMRegister msg1, XMMRegister msg2, XMMRegister msg3, XMMRegister shuf_mask, |
911 Register buf, Register state, Register ofs, Register limit, Register rsp, |
950 Register buf, Register state, Register ofs, Register limit, Register rsp, |
912 bool multi_block); |
951 bool multi_block); |
913 |
952 |