Mercurial > hg > truffle
comparison src/cpu/x86/vm/stubGenerator_x86_32.cpp @ 8873:e961c11b85fe
8011102: Clear AVX registers after return from JNI call
Summary: Execute vzeroupper instruction after JNI call and on exits in jit compiled code which use 256bit vectors.
Reviewed-by: roland
author | kvn |
---|---|
date | Wed, 03 Apr 2013 11:12:57 -0700 |
parents | e2e6bf86682c |
children | b9a918201d47 3f281b313240 |
comparison
equal
deleted
inserted
replaced
8872:53028d751155 | 8873:e961c11b85fe |
---|---|
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 // |