mirror of
https://github.com/openjdk/jdk.git
synced 2026-07-13 12:38:07 +00:00
8387758: Oop verification wrong in StubGenerator::generate_generic_copy
Reviewed-by: shade, galder
This commit is contained in:
parent
cb45fb887a
commit
63294ee8ba
@ -2568,7 +2568,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
__ movw(scratch_length, length); // length (elements count, 32-bits value)
|
||||
__ tbnz(scratch_length, 31, L_failed); // i.e. sign bit set
|
||||
|
||||
__ load_klass(scratch_src_klass, src);
|
||||
__ load_narrow_klass(scratch_src_klass, src);
|
||||
#ifdef ASSERT
|
||||
// assert(src->klass() != nullptr);
|
||||
{
|
||||
@ -2583,6 +2583,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
BLOCK_COMMENT("} assert klasses not null done");
|
||||
}
|
||||
#endif
|
||||
__ decode_klass_not_null(scratch_src_klass, scratch_src_klass);
|
||||
|
||||
// Load layout helper (32-bits)
|
||||
//
|
||||
|
||||
@ -1889,7 +1889,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
__ sext(scratch_length, length, 32); // length (elements count, 32-bits value)
|
||||
__ bltz(scratch_length, L_failed);
|
||||
|
||||
__ load_klass(scratch_src_klass, src);
|
||||
__ load_narrow_klass(scratch_src_klass, src);
|
||||
#ifdef ASSERT
|
||||
{
|
||||
BLOCK_COMMENT("assert klasses not null {");
|
||||
@ -1903,6 +1903,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
BLOCK_COMMENT("} assert klasses not null done");
|
||||
}
|
||||
#endif
|
||||
__ decode_klass_not_null(scratch_src_klass, t0);
|
||||
|
||||
// Load layout helper (32-bits)
|
||||
//
|
||||
|
||||
@ -3560,13 +3560,13 @@ address StubGenerator::generate_generic_copy(address byte_copy_entry, address sh
|
||||
__ testl(r11_length, r11_length);
|
||||
__ jccb(Assembler::negative, L_failed_0);
|
||||
|
||||
__ load_klass(r10_src_klass, src, rklass_tmp);
|
||||
__ load_narrow_klass(r10_src_klass, src);
|
||||
#ifdef ASSERT
|
||||
// assert(src->klass() != nullptr);
|
||||
{
|
||||
BLOCK_COMMENT("assert klasses not null {");
|
||||
Label L1, L2;
|
||||
__ testptr(r10_src_klass, r10_src_klass);
|
||||
__ testl(r10_src_klass, r10_src_klass);
|
||||
__ jcc(Assembler::notZero, L2); // it is broken if klass is null
|
||||
__ bind(L1);
|
||||
__ stop("broken null klass");
|
||||
@ -3577,6 +3577,7 @@ address StubGenerator::generate_generic_copy(address byte_copy_entry, address sh
|
||||
BLOCK_COMMENT("} assert klasses not null done");
|
||||
}
|
||||
#endif
|
||||
__ decode_klass_not_null(r10_src_klass, rklass_tmp);
|
||||
|
||||
// Load layout helper (32-bits)
|
||||
//
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user