8202989: Add missing decorators in calls to to arraycopy_prologue/epilogue

Reviewed-by: stefank, eosterlund
This commit is contained in:
Per Lidén 2018-05-18 15:21:23 +02:00
parent dface12e6d
commit 2aa9d028c7
7 changed files with 21 additions and 21 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}