Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8293245: x86_64: Extract Adler32 stub implementation into stubGenerator_x86_64_adler.cpp #10126

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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