(1)
Inline small array copy size without using rep movs for int array and long array
If AVX-512 is supported and copy size <= 128 bytes, the inlined copy sequence is used.
If AVX is supported, the threshold for inlined sequence is 64 bytes instead.
The enhancement for 32 bit and 64 bit arrays will be reused in the downstream OpenJ9 project for reference arrays.
(2)
Refactor char array enhancement implementation to support both rep movsw and rep movsd if the copysize is greater than the supported enhancement threshold.
(3)
Add the following options to disable the enhancement
disableArrayCopyIntArrayInlineSmallSizeWithoutREPMOVS: disable the enhancement for int array
disableArrayCopyLongArrayInlineSmallSizeWithoutREPMOVS: disable the enhancement for long array
disableArrayCopyReferenceArrayInlineSmallSizeWithoutREPMOVS: disable the enhancement for reference array, which will be implemented in downstream project OpenJ9.
(1) Inline small array copy size without using
rep movs
for int array and long array(2) Refactor char array enhancement implementation to support both
rep movsw
andrep movsd
if the copysize is greater than the supported enhancement threshold.(3) Add the following options to disable the enhancement
disableArrayCopyIntArrayInlineSmallSizeWithoutREPMOVS
: disable the enhancement for int arraydisableArrayCopyLongArrayInlineSmallSizeWithoutREPMOVS
: disable the enhancement for long arraydisableArrayCopyReferenceArrayInlineSmallSizeWithoutREPMOVS
: disable the enhancement for reference array, which will be implemented in downstream project OpenJ9.