Skip to content

Commit

Permalink
8293245: x86_64: Extract Adler32 stub implementation into stubGenerat…
Browse files Browse the repository at this point in the history
…or_x86_64_adler.cpp

Reviewed-by: kvn, dlong
  • Loading branch information
Vladimir Ivanov committed Sep 6, 2022
1 parent da59618 commit fb6eb6f
Show file tree
Hide file tree
Showing 6 changed files with 268 additions and 274 deletions.
1 change: 0 additions & 1 deletion src/hotspot/cpu/x86/macroAssembler_x86.hpp
Expand Up @@ -1961,7 +1961,6 @@ class MacroAssembler: public Assembler {
void kernel_crc32_avx512_256B(Register crc, Register buf, Register len, Register key, Register pos,
Register tmp1, Register tmp2, Label& L_barrett, Label& L_16B_reduction_loop,
Label& L_get_last_two_xmms, Label& L_128_done, Label& L_cleanup);
void updateBytesAdler32(Register adler32, Register buf, Register length, XMMRegister shuf0, XMMRegister shuf1, ExternalAddress scale);
#endif // _LP64

// CRC32C code for java.util.zip.CRC32C::updateBytes() intrinsic
Expand Down
211 changes: 0 additions & 211 deletions src/hotspot/cpu/x86/macroAssembler_x86_adler.cpp

This file was deleted.

40 changes: 0 additions & 40 deletions src/hotspot/cpu/x86/stubGenerator_x86_64.cpp
Expand Up @@ -6733,46 +6733,6 @@ address StubGenerator::generate_updateBytesCRC32C(bool is_pclmulqdq_supported) {
}


/***
* Arguments:
*
* Inputs:
* c_rarg0 - int adler
* c_rarg1 - byte* buff
* c_rarg2 - int len
*
* Output:
* rax - int adler result
*/

address StubGenerator::generate_updateBytesAdler32() {
assert(UseAdler32Intrinsics, "need AVX2");

__ align(CodeEntryAlignment);
StubCodeMark mark(this, "StubRoutines", "updateBytesAdler32");
address start = __ pc();

const Register data = r9;
const Register size = r10;

const XMMRegister yshuf0 = xmm6;
const XMMRegister yshuf1 = xmm7;
assert_different_registers(c_rarg0, c_rarg1, c_rarg2, data, size);

BLOCK_COMMENT("Entry:");
__ enter(); // required for proper stackwalking of RuntimeStub frame

__ vmovdqu(yshuf0, ExternalAddress((address) StubRoutines::x86::_adler32_shuf0_table), r9);
__ vmovdqu(yshuf1, ExternalAddress((address) StubRoutines::x86::_adler32_shuf1_table), r9);
__ movptr(data, c_rarg1); //data
__ movl(size, c_rarg2); //length
__ updateBytesAdler32(c_rarg0, data, size, yshuf0, yshuf1, ExternalAddress((address) StubRoutines::x86::_adler32_ascale_table));
__ leave();
__ ret(0);

return start;
}

/**
* Arguments:
*
Expand Down

1 comment on commit fb6eb6f

@openjdk-notifier
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.