https://bugs.kde.org/show_bug.cgi?id=523626
--- Comment #12 from Mark Wielaard <[email protected]> --- (In reply to mcermak from comment #11) > But do I get it right that under Valgrind, this (clang optimized) clean > helper ( g_calc_mpsadbw() ) is not run in a real linux address space, but > instead it runs in a Valgrind synthetic address space? So maybe the > optimization relies on a constraint that holds in a true linux address > space, but not in the Valgrind synthetic one? Like a missing padding > somewhere causing the misaligned address? g_calc_mpsadbw is a clean helper used to implement MPSADBW. To generate the VEX IR math_MPSADBW_128 creates 4 64bit values and calls the clean helper function to calculate the result (twice, one for the high and one for the low values). See VEX/priv/guest_generic_sse.h A clean helper function runs directly on the CPU. In this case the optimization generates a MOVDQA instruction that operates on a (stack) address that isn't 16 bytes aligned. valgrind itself is responsible for the clean helper function call and setting up the arguments. See doHelperCall. Maybe it isn't keeping the stack 16 bytes aligned? (I am just speculating here, haven't actually checked the code.) -- You are receiving this mail because: You are watching all bug changes.
