833 |
833 |
834 __ addl(from, 64); |
834 __ addl(from, 64); |
835 __ BIND(L_copy_64_bytes); |
835 __ BIND(L_copy_64_bytes); |
836 __ subl(qword_count, 8); |
836 __ subl(qword_count, 8); |
837 __ jcc(Assembler::greaterEqual, L_copy_64_bytes_loop); |
837 __ jcc(Assembler::greaterEqual, L_copy_64_bytes_loop); |
|
838 |
|
839 if (UseUnalignedLoadStores && (UseAVX >= 2)) { |
|
840 // clean upper bits of YMM registers |
|
841 __ vzeroupper(); |
|
842 } |
838 __ addl(qword_count, 8); |
843 __ addl(qword_count, 8); |
839 __ jccb(Assembler::zero, L_exit); |
844 __ jccb(Assembler::zero, L_exit); |
840 // |
845 // |
841 // length is too short, just copy qwords |
846 // length is too short, just copy qwords |
842 // |
847 // |