mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-11 22:19:43 +00:00
8202989: Add missing decorators in calls to to arraycopy_prologue/epilogue
Reviewed-by: stefank, eosterlund
This commit is contained in:
parent
dface12e6d
commit
2aa9d028c7
@ -1351,7 +1351,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
BLOCK_COMMENT("Entry:");
|
||||
}
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_DISJOINT;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_DISJOINT;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
@ -1425,7 +1425,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
__ cmp(rscratch1, count, Assembler::LSL, exact_log2(size));
|
||||
__ br(Assembler::HS, nooverlap_target);
|
||||
|
||||
DecoratorSet decorators = 0;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
@ -1789,7 +1789,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
}
|
||||
#endif //ASSERT
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_CHECKCAST;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_CHECKCAST;
|
||||
bool is_oop = true;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
|
||||
@ -2945,7 +2945,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
__ push(LR);
|
||||
#endif // AARCH64
|
||||
|
||||
DecoratorSet decorators = 0;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY;
|
||||
if (disjoint) {
|
||||
decorators |= ARRAYCOPY_DISJOINT;
|
||||
}
|
||||
@ -3217,7 +3217,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
pushed+=1;
|
||||
#endif // AARCH64
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_CHECKCAST;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_CHECKCAST;
|
||||
|
||||
BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler();
|
||||
bs->arraycopy_prologue(_masm, decorators, true, to, count, callee_saved_regs);
|
||||
|
||||
@ -2024,7 +2024,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
STUB_ENTRY(arrayof_oop_disjoint_arraycopy) :
|
||||
STUB_ENTRY(oop_disjoint_arraycopy);
|
||||
|
||||
DecoratorSet decorators = 0;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
@ -2063,7 +2063,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
address start = __ function_entry();
|
||||
assert_positive_int(R5_ARG3);
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_DISJOINT;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_DISJOINT;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
@ -2159,7 +2159,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
}
|
||||
#endif
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_CHECKCAST;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_CHECKCAST;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
@ -1300,7 +1300,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
unsigned int start_off = __ offset(); // Remember stub start address (is rtn value).
|
||||
unsigned int size = UseCompressedOops ? 4 : 8;
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_DISJOINT;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_DISJOINT;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
@ -1392,7 +1392,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
// Branch to disjoint_copy (if applicable) before pre_barrier to avoid double pre_barrier.
|
||||
array_overlap_test(nooverlap_target, shift); // Branch away to nooverlap_target if disjoint.
|
||||
|
||||
DecoratorSet decorators = 0;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
@ -2269,7 +2269,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
BLOCK_COMMENT("Entry:");
|
||||
}
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_DISJOINT;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_DISJOINT;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
@ -2326,7 +2326,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
|
||||
array_overlap_test(nooverlap_target, LogBytesPerHeapOop);
|
||||
|
||||
DecoratorSet decorators = 0;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
@ -2446,7 +2446,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
BLOCK_COMMENT("Entry:");
|
||||
}
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_CHECKCAST;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_CHECKCAST;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
@ -837,7 +837,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
__ jcc(Assembler::zero, L_0_count);
|
||||
}
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_DISJOINT;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_DISJOINT;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
@ -1026,7 +1026,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
__ jcc(Assembler::zero, L_0_count);
|
||||
}
|
||||
|
||||
DecoratorSet decorators = 0;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
@ -1383,7 +1383,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
Address to_element_addr(end_to, count, Address::times_ptr, 0);
|
||||
Address elem_klass_addr(elem, oopDesc::klass_offset_in_bytes());
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_CHECKCAST;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_CHECKCAST;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
@ -1820,7 +1820,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
setup_arg_regs(); // from => rdi, to => rsi, count => rdx
|
||||
// r9 and r10 may be used to save non-volatile registers
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_DISJOINT;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_DISJOINT;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
@ -1914,7 +1914,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
setup_arg_regs(); // from => rdi, to => rsi, count => rdx
|
||||
// r9 and r10 may be used to save non-volatile registers
|
||||
|
||||
DecoratorSet decorators = 0;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
@ -2018,7 +2018,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
// r9 and r10 may be used to save non-volatile registers
|
||||
// 'from', 'to' and 'qword_count' are now valid
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_DISJOINT;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_DISJOINT;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
@ -2111,7 +2111,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
// r9 and r10 may be used to save non-volatile registers
|
||||
// 'from', 'to' and 'qword_count' are now valid
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_DISJOINT;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_DISJOINT;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
@ -2294,7 +2294,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
Address from_element_addr(end_from, count, TIMES_OOP, 0);
|
||||
Address to_element_addr(end_to, count, TIMES_OOP, 0);
|
||||
|
||||
DecoratorSet decorators = ARRAYCOPY_CHECKCAST;
|
||||
DecoratorSet decorators = IN_HEAP | IN_HEAP_ARRAY | ARRAYCOPY_CHECKCAST;
|
||||
if (dest_uninitialized) {
|
||||
decorators |= AS_DEST_NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user