< prev index next >

src/cpu/ppc/vm/macroAssembler_ppc.hpp

Print this page
rev 12672 : [mq]: crc32_ppc.patch

*** 1,8 **** /* ! * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. ! * Copyright (c) 2012, 2016 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,8 ---- /* ! * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved. ! * Copyright (c) 2012, 2017, SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 815,851 **** Register z, Register zlen, Register tmp1, Register tmp2, Register tmp3, Register tmp4, Register tmp5, Register tmp6, Register tmp7, Register tmp8, Register tmp9, Register tmp10, Register tmp11, Register tmp12, Register tmp13); ! // CRC32 Intrinsics. void load_reverse_32(Register dst, Register src); int crc32_table_columns(Register table, Register tc0, Register tc1, Register tc2, Register tc3); void fold_byte_crc32(Register crc, Register val, Register table, Register tmp); void fold_8bit_crc32(Register crc, Register table, Register tmp); void update_byte_crc32(Register crc, Register val, Register table); void update_byteLoop_crc32(Register crc, Register buf, Register len, Register table, ! Register data, bool loopAlignment, bool invertCRC); void update_1word_crc32(Register crc, Register buf, Register table, int bufDisp, int bufInc, Register t0, Register t1, Register t2, Register t3, Register tc0, Register tc1, Register tc2, Register tc3); void kernel_crc32_2word(Register crc, Register buf, Register len, Register table, Register t0, Register t1, Register t2, Register t3, ! Register tc0, Register tc1, Register tc2, Register tc3); void kernel_crc32_1word(Register crc, Register buf, Register len, Register table, Register t0, Register t1, Register t2, Register t3, ! Register tc0, Register tc1, Register tc2, Register tc3); void kernel_crc32_1byte(Register crc, Register buf, Register len, Register table, ! Register t0, Register t1, Register t2, Register t3); void kernel_crc32_1word_vpmsumd(Register crc, Register buf, Register len, Register table, Register constants, Register barretConstants, ! Register t0, Register t1, Register t2, Register t3, Register t4); void kernel_crc32_1word_aligned(Register crc, Register buf, Register len, Register constants, Register barretConstants, Register t0, Register t1, Register t2); ! void kernel_crc32_singleByte(Register crc, Register buf, Register len, Register table, Register tmp); // // Debugging // --- 815,865 ---- Register z, Register zlen, Register tmp1, Register tmp2, Register tmp3, Register tmp4, Register tmp5, Register tmp6, Register tmp7, Register tmp8, Register tmp9, Register tmp10, Register tmp11, Register tmp12, Register tmp13); ! // Emitters for CRC32 calculation. ! // A note on invertCRC: ! // Unfortunately, internal representation of crc differs between CRC32 and CRC32C. ! // CRC32 holds it's current crc value in the externally visible representation. ! // CRC32C holds it's current crc value in internal format, ready for updating. ! // Thus, the crc value must be bit-flipped before updating it in the CRC32 case. ! // In the CRC32C case, it must be bit-flipped when it is given to the outside world (getValue()). ! // The bool invertCRC parameter indicates whether bit-flipping is required before updates. void load_reverse_32(Register dst, Register src); int crc32_table_columns(Register table, Register tc0, Register tc1, Register tc2, Register tc3); void fold_byte_crc32(Register crc, Register val, Register table, Register tmp); void fold_8bit_crc32(Register crc, Register table, Register tmp); void update_byte_crc32(Register crc, Register val, Register table); void update_byteLoop_crc32(Register crc, Register buf, Register len, Register table, ! Register data, bool loopAlignment); void update_1word_crc32(Register crc, Register buf, Register table, int bufDisp, int bufInc, Register t0, Register t1, Register t2, Register t3, Register tc0, Register tc1, Register tc2, Register tc3); void kernel_crc32_2word(Register crc, Register buf, Register len, Register table, Register t0, Register t1, Register t2, Register t3, ! Register tc0, Register tc1, Register tc2, Register tc3, ! bool invertCRC); void kernel_crc32_1word(Register crc, Register buf, Register len, Register table, Register t0, Register t1, Register t2, Register t3, ! Register tc0, Register tc1, Register tc2, Register tc3, ! bool invertCRC); void kernel_crc32_1byte(Register crc, Register buf, Register len, Register table, ! Register t0, Register t1, Register t2, Register t3, ! bool invertCRC); void kernel_crc32_1word_vpmsumd(Register crc, Register buf, Register len, Register table, Register constants, Register barretConstants, ! Register t0, Register t1, Register t2, Register t3, Register t4, ! bool invertCRC); void kernel_crc32_1word_aligned(Register crc, Register buf, Register len, Register constants, Register barretConstants, Register t0, Register t1, Register t2); ! void kernel_crc32_singleByte(Register crc, Register buf, Register len, Register table, Register tmp, ! bool invertCRC); ! void kernel_crc32_singleByteReg(Register crc, Register val, Register table, ! bool invertCRC); // // Debugging //
< prev index next >