189e58a7a399fc64345efb90a6ada654272e28988sewardj 289e58a7a399fc64345efb90a6ada654272e28988sewardj// Set up the 128-bit shadow memory test, by defining the 389e58a7a399fc64345efb90a6ada654272e28988sewardj// required vector-copy function, and then including the 489e58a7a399fc64345efb90a6ada654272e28988sewardj// template. 589e58a7a399fc64345efb90a6ada654272e28988sewardj 6e731e774ef1d12d7b57480e1d70dcc07f116b5d6sewardj#define VECTOR_BYTES 16 7e731e774ef1d12d7b57480e1d70dcc07f116b5d6sewardj 889e58a7a399fc64345efb90a6ada654272e28988sewardjstatic __attribute__((noinline)) 9e731e774ef1d12d7b57480e1d70dcc07f116b5d6sewardjvoid vector_copy ( void* dst, void* src ) 1089e58a7a399fc64345efb90a6ada654272e28988sewardj{ 1189e58a7a399fc64345efb90a6ada654272e28988sewardj __asm__ __volatile__( 1289e58a7a399fc64345efb90a6ada654272e28988sewardj "movups (%1), %%xmm7 ; movups %%xmm7, (%0)" 13e731e774ef1d12d7b57480e1d70dcc07f116b5d6sewardj : /*OUT*/ : /*IN*/ "r"(dst), "r"(src) : "memory","xmm7" 1489e58a7a399fc64345efb90a6ada654272e28988sewardj ); 1589e58a7a399fc64345efb90a6ada654272e28988sewardj} 1689e58a7a399fc64345efb90a6ada654272e28988sewardj 1789e58a7a399fc64345efb90a6ada654272e28988sewardj// Include the test body, which refers to the above function 1889e58a7a399fc64345efb90a6ada654272e28988sewardj#include "../common/sh-mem-vec128.tmpl.c" 19