1.1 --- a/src/cpu/ppc/vm/macroAssembler_ppc.hpp Mon Jul 23 18:08:46 2018 +0200 1.2 +++ b/src/cpu/ppc/vm/macroAssembler_ppc.hpp Mon Sep 24 17:18:38 2018 -0400 1.3 @@ -637,6 +637,27 @@ 1.4 void char_arrays_equalsImm(Register str1_reg, Register str2_reg, int cntval, Register result_reg, 1.5 Register tmp1_reg, Register tmp2_reg); 1.6 1.7 + // CRC32 Intrinsics. 1.8 + void load_reverse_32(Register dst, Register src); 1.9 + int crc32_table_columns(Register table, Register tc0, Register tc1, Register tc2, Register tc3); 1.10 + void fold_byte_crc32(Register crc, Register val, Register table, Register tmp); 1.11 + void fold_8bit_crc32(Register crc, Register table, Register tmp); 1.12 + void update_byte_crc32(Register crc, Register val, Register table); 1.13 + void update_byteLoop_crc32(Register crc, Register buf, Register len, Register table, 1.14 + Register data, bool loopAlignment, bool invertCRC); 1.15 + void update_1word_crc32(Register crc, Register buf, Register table, int bufDisp, int bufInc, 1.16 + Register t0, Register t1, Register t2, Register t3, 1.17 + Register tc0, Register tc1, Register tc2, Register tc3); 1.18 + void kernel_crc32_2word(Register crc, Register buf, Register len, Register table, 1.19 + Register t0, Register t1, Register t2, Register t3, 1.20 + Register tc0, Register tc1, Register tc2, Register tc3); 1.21 + void kernel_crc32_1word(Register crc, Register buf, Register len, Register table, 1.22 + Register t0, Register t1, Register t2, Register t3, 1.23 + Register tc0, Register tc1, Register tc2, Register tc3); 1.24 + void kernel_crc32_1byte(Register crc, Register buf, Register len, Register table, 1.25 + Register t0, Register t1, Register t2, Register t3); 1.26 + void kernel_crc32_singleByte(Register crc, Register buf, Register len, Register table, Register tmp); 1.27 + 1.28 // 1.29 // Debugging 1.30 //