< prev index next >

src/cpu/ppc/vm/macroAssembler_ppc.hpp

Print this page
rev 13508 : [mq]: 8185979_ppc_sha2.patch


 845   void kernel_crc32_1word(Register crc, Register buf, Register len, Register table,
 846                           Register t0,  Register t1,  Register t2,  Register t3,
 847                           Register tc0, Register tc1, Register tc2, Register tc3,
 848                           bool invertCRC);
 849   void kernel_crc32_1byte(Register crc, Register buf, Register len, Register table,
 850                           Register t0,  Register t1,  Register t2,  Register t3,
 851                           bool invertCRC);
 852   void kernel_crc32_1word_vpmsumd(Register crc, Register buf, Register len, Register table,
 853                           Register constants, Register barretConstants,
 854                           Register t0,  Register t1, Register t2, Register t3, Register t4,
 855                           bool invertCRC);
 856   void kernel_crc32_1word_aligned(Register crc, Register buf, Register len,
 857                           Register constants, Register barretConstants,
 858                           Register t0, Register t1, Register t2);
 859 
 860   void kernel_crc32_singleByte(Register crc, Register buf, Register len, Register table, Register tmp,
 861                                bool invertCRC);
 862   void kernel_crc32_singleByteReg(Register crc, Register val, Register table,
 863                                   bool invertCRC);
 864 


































 865   //
 866   // Debugging
 867   //
 868 
 869   // assert on cr0
 870   void asm_assert(bool check_equal, const char* msg, int id);
 871   void asm_assert_eq(const char* msg, int id) { asm_assert(true, msg, id); }
 872   void asm_assert_ne(const char* msg, int id) { asm_assert(false, msg, id); }
 873 
 874  private:
 875   void asm_assert_mems_zero(bool check_equal, int size, int mem_offset, Register mem_base,
 876                             const char* msg, int id);
 877 
 878  public:
 879 
 880   void asm_assert_mem8_is_zero(int mem_offset, Register mem_base, const char* msg, int id) {
 881     asm_assert_mems_zero(true,  8, mem_offset, mem_base, msg, id);
 882   }
 883   void asm_assert_mem8_isnot_zero(int mem_offset, Register mem_base, const char* msg, int id) {
 884     asm_assert_mems_zero(false, 8, mem_offset, mem_base, msg, id);




 845   void kernel_crc32_1word(Register crc, Register buf, Register len, Register table,
 846                           Register t0,  Register t1,  Register t2,  Register t3,
 847                           Register tc0, Register tc1, Register tc2, Register tc3,
 848                           bool invertCRC);
 849   void kernel_crc32_1byte(Register crc, Register buf, Register len, Register table,
 850                           Register t0,  Register t1,  Register t2,  Register t3,
 851                           bool invertCRC);
 852   void kernel_crc32_1word_vpmsumd(Register crc, Register buf, Register len, Register table,
 853                           Register constants, Register barretConstants,
 854                           Register t0,  Register t1, Register t2, Register t3, Register t4,
 855                           bool invertCRC);
 856   void kernel_crc32_1word_aligned(Register crc, Register buf, Register len,
 857                           Register constants, Register barretConstants,
 858                           Register t0, Register t1, Register t2);
 859 
 860   void kernel_crc32_singleByte(Register crc, Register buf, Register len, Register table, Register tmp,
 861                                bool invertCRC);
 862   void kernel_crc32_singleByteReg(Register crc, Register val, Register table,
 863                                   bool invertCRC);
 864 
 865   // SHA-2 auxiliary functions and public interfaces
 866  private:
 867   void sha256_deque(const VectorRegister src,
 868       const VectorRegister dst1, const VectorRegister dst2, const VectorRegister dst3);
 869   void sha256_load_h_vec(const VectorRegister a, const VectorRegister e, const Register hptr);
 870   void sha256_round(const VectorRegister* hs, const int total_hs, int& h_cnt, const VectorRegister kpw);
 871   void sha256_load_w_plus_k_vec(const Register buf_in, const VectorRegister* ws,
 872       const int total_ws, const Register k, const VectorRegister* kpws,
 873       const int total_kpws);
 874   void sha256_calc_4w(const VectorRegister w0, const VectorRegister w1,
 875       const VectorRegister w2, const VectorRegister w3, const VectorRegister kpw0,
 876       const VectorRegister kpw1, const VectorRegister kpw2, const VectorRegister kpw3,
 877       const Register j, const Register k);
 878   void sha256_update_sha_state(const VectorRegister a, const VectorRegister b,
 879       const VectorRegister c, const VectorRegister d, const VectorRegister e,
 880       const VectorRegister f, const VectorRegister g, const VectorRegister h,
 881       const Register hptr);
 882 
 883   void sha512_load_w_vec(const Register buf_in, const VectorRegister* ws, const int total_ws);
 884   void sha512_update_sha_state(const Register state, const VectorRegister* hs, const int total_hs);
 885   void sha512_round(const VectorRegister* hs, const int total_hs, int& h_cnt, const VectorRegister kpw);
 886   void sha512_load_h_vec(const Register state, const VectorRegister* hs, const int total_hs);
 887   void sha512_calc_2w(const VectorRegister w0, const VectorRegister w1,
 888       const VectorRegister w2, const VectorRegister w3,
 889       const VectorRegister w4, const VectorRegister w5,
 890       const VectorRegister w6, const VectorRegister w7,
 891       const VectorRegister kpw0, const VectorRegister kpw1, const Register j,
 892       const VectorRegister vRb, const Register k);
 893 
 894  public:
 895   void sha256(bool multi_block);
 896   void sha512(bool multi_block);
 897 
 898 
 899   //
 900   // Debugging
 901   //
 902 
 903   // assert on cr0
 904   void asm_assert(bool check_equal, const char* msg, int id);
 905   void asm_assert_eq(const char* msg, int id) { asm_assert(true, msg, id); }
 906   void asm_assert_ne(const char* msg, int id) { asm_assert(false, msg, id); }
 907 
 908  private:
 909   void asm_assert_mems_zero(bool check_equal, int size, int mem_offset, Register mem_base,
 910                             const char* msg, int id);
 911 
 912  public:
 913 
 914   void asm_assert_mem8_is_zero(int mem_offset, Register mem_base, const char* msg, int id) {
 915     asm_assert_mems_zero(true,  8, mem_offset, mem_base, msg, id);
 916   }
 917   void asm_assert_mem8_isnot_zero(int mem_offset, Register mem_base, const char* msg, int id) {
 918     asm_assert_mems_zero(false, 8, mem_offset, mem_base, msg, id);


< prev index next >