DEBUG: SITE files ['endian-big', 'bit-32', 'mips-common', 'common-linux', 'common-musl', 'mips-linux', 'mips-linux-musl', 'common']
DEBUG: Executing shell function do_compile_ptest_base
NOTE: make -w check
make: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build'
../valgrind-3.14.0/auxprogs/make_or_upd_vgversion_h ../valgrind-3.14.0
make check-recursive
make[1]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build'
Making check in include
make[2]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/include'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/include'
Making check in VEX
make[2]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/VEX'
make check-am
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/VEX'
make[3]: Nothing to be done for 'check-am'.
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/VEX'
make[2]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/VEX'
Making check in coregrind
make[2]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/coregrind'
make check-am
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/coregrind'
mkdir -p ../.in_place; \
for f in vgpreload_core-mips32-linux.so ; do \
rm -f ../.in_place/$f; \
ln -f -s ../coregrind/$f ../.in_place; \
done
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
mkdir -p ../.in_place; \
for f in ; do \
rm -f ../.in_place/$f.dSYM; \
ln -f -s ../coregrind/$f.dSYM ../.in_place; \
done
mkdir -p ../.in_place; \
for f in m_gdbserver/32bit-core-valgrind-s1.xml m_gdbserver/32bit-core-valgrind-s2.xml m_gdbserver/32bit-core.xml m_gdbserver/32bit-linux-valgrind-s1.xml m_gdbserver/32bit-linux-valgrind-s2.xml m_gdbserver/32bit-linux.xml m_gdbserver/32bit-sse-valgrind-s1.xml m_gdbserver/32bit-sse-valgrind-s2.xml m_gdbserver/32bit-sse.xml m_gdbserver/64bit-avx-valgrind-s2.xml m_gdbserver/64bit-avx-valgrind-s1.xml m_gdbserver/64bit-avx.xml m_gdbserver/64bit-core-valgrind-s1.xml m_gdbserver/64bit-core-valgrind-s2.xml m_gdbserver/64bit-core.xml m_gdbserver/64bit-linux-valgrind-s1.xml m_gdbserver/64bit-linux-valgrind-s2.xml m_gdbserver/64bit-linux.xml m_gdbserver/64bit-sse-valgrind-s1.xml m_gdbserver/64bit-sse-valgrind-s2.xml m_gdbserver/64bit-sse.xml m_gdbserver/amd64-avx-coresse-valgrind.xml m_gdbserver/amd64-avx-coresse.xml m_gdbserver/amd64-avx-linux-valgrind.xml m_gdbserver/amd64-avx-linux.xml m_gdbserver/amd64-coresse-valgrind.xml m_gdbserver/amd64-linux-valgrind.xml m_gdbserver/arm-core-valgrind-s1.xml m_gdbserver/arm-core-valgrind-s2.xml m_gdbserver/arm-core.xml m_gdbserver/arm-vfpv3-valgrind-s1.xml m_gdbserver/arm-vfpv3-valgrind-s2.xml m_gdbserver/arm-vfpv3.xml m_gdbserver/arm-with-vfpv3-valgrind.xml m_gdbserver/arm-with-vfpv3.xml m_gdbserver/i386-coresse-valgrind.xml m_gdbserver/i386-linux-valgrind.xml m_gdbserver/power64-core-valgrind-s1.xml m_gdbserver/power64-core-valgrind-s2.xml m_gdbserver/power64-core.xml m_gdbserver/power64-core2-valgrind-s1.xml m_gdbserver/power64-core2-valgrind-s2.xml m_gdbserver/power64-linux-valgrind-s1.xml m_gdbserver/power64-linux-valgrind-s2.xml m_gdbserver/power64-linux.xml m_gdbserver/power-altivec-valgrind-s1.xml m_gdbserver/power-altivec-valgrind-s2.xml m_gdbserver/power-altivec.xml m_gdbserver/power-vsx-valgrind-s1.xml m_gdbserver/power-vsx-valgrind-s2.xml m_gdbserver/power-vsx.xml m_gdbserver/power-core-valgrind-s1.xml m_gdbserver/power-core-valgrind-s2.xml m_gdbserver/power-core.xml m_gdbserver/power-fpu-valgrind-s1.xml m_gdbserver/power-fpu-valgrind-s2.xml m_gdbserver/power-fpu.xml m_gdbserver/power-linux-valgrind-s1.xml m_gdbserver/power-linux-valgrind-s2.xml m_gdbserver/power-linux.xml m_gdbserver/powerpc-altivec32l-valgrind.xml m_gdbserver/powerpc-altivec32l.xml m_gdbserver/powerpc-altivec64l-valgrind.xml m_gdbserver/powerpc-altivec64l.xml m_gdbserver/s390-acr-valgrind-s1.xml m_gdbserver/s390-acr-valgrind-s2.xml m_gdbserver/s390-acr.xml m_gdbserver/s390-fpr-valgrind-s1.xml m_gdbserver/s390-fpr-valgrind-s2.xml m_gdbserver/s390-fpr.xml m_gdbserver/s390x-core64-valgrind-s1.xml m_gdbserver/s390x-core64-valgrind-s2.xml m_gdbserver/s390x-core64.xml m_gdbserver/s390x-generic-valgrind.xml m_gdbserver/s390x-generic.xml m_gdbserver/s390x-linux64-valgrind-s1.xml m_gdbserver/s390x-linux64-valgrind-s2.xml m_gdbserver/s390x-linux64.xml m_gdbserver/mips-cp0-valgrind-s1.xml m_gdbserver/mips-cp0-valgrind-s2.xml m_gdbserver/mips-cp0.xml m_gdbserver/mips-cpu-valgrind-s1.xml m_gdbserver/mips-cpu-valgrind-s2.xml m_gdbserver/mips-cpu.xml m_gdbserver/mips-linux.xml m_gdbserver/mips-linux-valgrind.xml m_gdbserver/mips-fpu-valgrind-s1.xml m_gdbserver/mips-fpu-valgrind-s2.xml m_gdbserver/mips-fpu.xml m_gdbserver/mips64-cp0-valgrind-s1.xml m_gdbserver/mips64-cp0-valgrind-s2.xml m_gdbserver/mips64-cp0.xml m_gdbserver/mips64-cpu-valgrind-s1.xml m_gdbserver/mips64-cpu-valgrind-s2.xml m_gdbserver/mips64-cpu.xml m_gdbserver/mips64-linux.xml m_gdbserver/mips64-linux-valgrind.xml m_gdbserver/mips64-fpu-valgrind-s1.xml m_gdbserver/mips64-fpu-valgrind-s2.xml m_gdbserver/mips64-fpu.xml; do \
rm -f ../.in_place/$f; \
ln -f -s ../coregrind/$f ../.in_place; \
done
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/coregrind'
make[2]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/coregrind'
Making check in .
make[2]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build'
../valgrind-3.14.0/auxprogs/make_or_upd_vgversion_h ../valgrind-3.14.0
mkdir -p ./.in_place
rm -f ./.in_place/default.supp
ln -s ../default.supp ./.in_place
make[2]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build'
Making check in memcheck
make[2]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck'
Making check in .
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck'
mkdir -p ../.in_place; \
for f in memcheck-mips32-linux vgpreload_memcheck-mips32-linux.so ; do \
rm -f ../.in_place/$f; \
ln -f -s ../memcheck/$f ../.in_place; \
done
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
mkdir -p ../.in_place; \
for f in ; do \
rm -f ../.in_place/$f.dSYM; \
ln -f -s ../memcheck/$f.dSYM ../.in_place; \
done
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck'
Making check in tests
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests'
Making check in .
make[4]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests'
make accounting addressable atomic_incs badaddrvalue badfree badjump badjump2 badloop badpoll badrw big_blocks_freed_list brk2 buflen_check bug155125 bug287260 bug340392 calloc-overflow client-msg clientperm clireq_nofill clo_redzone cond_ld_st descr_belowsp leak_cpp_interior custom_alloc custom-overlap demangle big_debuginfo_symbol deep-backtrace describe-block doublefree error_counts errs1 exitprog execve1 execve2 erringfds err_disable1 err_disable2 err_disable3 err_disable4 err_disable_arange1 file_locking fprw fwrite inits inline inlinfo inltemplate holey_buffer_too_small leak-0 leak-cases leak-cycle leak-delta leak-pool leak-autofreepool leak-tree leak-segv-jmp long-supps mallinfo malloc_free_fill malloc_usable malloc1 malloc2 malloc3 manuel1 manuel2 manuel3 match-overrun memalign_test memalign2 memcmptest mempool mempool2 mmaptest mismatches new_override metadata nanoleak_supp nanoleak2 new_nothrow noisy_child null_socket origin1-yes origin2-not-quite origin3-no origin4-many origin5-bz2 origin6-fp overlap partiallydefinedeq partial_load pdb-realloc pdb-realloc2 pipe pointer-trace post-syscall realloc1 realloc2 realloc3 recursive-merge resvn_stack sbfragment sendmsg sh-mem sh-mem-random sigaltstack signal2 sigprocmask static_malloc sigkill strchr str_tester supp_unknown supp1 supp2 suppfree test-plo trivialleak thread_alloca undef_malloc_args unit_libcbase unit_oset varinfo1 varinfo2 varinfo3 varinfo4 varinfo5 varinfo5so.so varinfo6 varinforestrict vcpu_fbench vcpu_fnfns wcs xml1 wrap1 wrap2 wrap3 wrap4 wrap5 wrap6 wrap7 wrap7so.so wrap8 wrapmalloc wrapmallocso.so wrapmallocstatic writev1 long_namespace_xml dw4 cdebug_zlib cdebug_zlib_gnu stpncpy threadname reach_thread_register
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests'
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o accounting.o ../../../valgrind-3.14.0/memcheck/tests/accounting.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o accounting accounting.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o addressable.o ../../../valgrind-3.14.0/memcheck/tests/addressable.c
../../../valgrind-3.14.0/memcheck/tests/addressable.c:33:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
static void test1()
^~~~~
../../../valgrind-3.14.0/memcheck/tests/addressable.c:41:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
static void test2()
^~~~~
../../../valgrind-3.14.0/memcheck/tests/addressable.c:55:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
static void test3()
^~~~~
../../../valgrind-3.14.0/memcheck/tests/addressable.c:65:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
static void test4()
^~~~~
../../../valgrind-3.14.0/memcheck/tests/addressable.c:78:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
static void test5()
^~~~~
../../../valgrind-3.14.0/memcheck/tests/addressable.c:106:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o addressable addressable.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o atomic_incs-atomic_incs.o `test -f 'atomic_incs.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`atomic_incs.c
../../../valgrind-3.14.0/memcheck/tests/atomic_incs.c:27:32: warning: no previous prototype for 'atomic_add_8bit' [-Wmissing-prototypes]
__attribute__((noinline)) void atomic_add_8bit ( char* p, int n )
^~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/atomic_incs.c:243:32: warning: no previous prototype for 'atomic_add_16bit' [-Wmissing-prototypes]
__attribute__((noinline)) void atomic_add_16bit ( short* p, int n )
^~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/atomic_incs.c:458:32: warning: no previous prototype for 'atomic_add_32bit' [-Wmissing-prototypes]
__attribute__((noinline)) void atomic_add_32bit ( int* p, int n )
^~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/atomic_incs.c:613:32: warning: no previous prototype for 'atomic_add_64bit' [-Wmissing-prototypes]
__attribute__((noinline)) void atomic_add_64bit ( long long int* p, int n )
^~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/atomic_incs.c: In function 'main':
../../../valgrind-3.14.0/memcheck/tests/atomic_incs.c:735:10: warning: cast increases required alignment of target type [-Wcast-align]
p16 = (short*)(page+256);
^
../../../valgrind-3.14.0/memcheck/tests/atomic_incs.c:736:10: warning: cast increases required alignment of target type [-Wcast-align]
p32 = (int*)(page+512);
^
../../../valgrind-3.14.0/memcheck/tests/atomic_incs.c:737:10: warning: cast increases required alignment of target type [-Wcast-align]
p64 = (long long int*)(page+768);
^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o atomic_incs atomic_incs-atomic_incs.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o badaddrvalue.o ../../../valgrind-3.14.0/memcheck/tests/badaddrvalue.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o badaddrvalue badaddrvalue.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o badfree.o ../../../valgrind-3.14.0/memcheck/tests/badfree.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o badfree badfree.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o badjump.o ../../../valgrind-3.14.0/memcheck/tests/badjump.c
../../../valgrind-3.14.0/memcheck/tests/badjump.c: In function 'main':
../../../valgrind-3.14.0/memcheck/tests/badjump.c:17:12: warning: cast increases required alignment of target type [-Wcast-align]
return ((int(*)(void)) p) ();
^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o badjump badjump.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o badjump2.o ../../../valgrind-3.14.0/memcheck/tests/badjump2.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o badjump2 badjump2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o badloop.o ../../../valgrind-3.14.0/memcheck/tests/badloop.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o badloop badloop.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o badpoll.o ../../../valgrind-3.14.0/memcheck/tests/badpoll.c
In file included from ../../../valgrind-3.14.0/memcheck/tests/badpoll.c:3:
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
#warning redirecting incorrect #include <sys/poll.h> to <poll.h>
^~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o badpoll badpoll.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o badrw.o ../../../valgrind-3.14.0/memcheck/tests/badrw.c
../../../valgrind-3.14.0/memcheck/tests/badrw.c: In function 'main':
../../../valgrind-3.14.0/memcheck/tests/badrw.c:14:10: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
x4 = x-4;
^
../../../valgrind-3.14.0/memcheck/tests/badrw.c:15:10: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
x2 = x-4;
^
../../../valgrind-3.14.0/memcheck/tests/badrw.c:16:10: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
x1 = x-1;
^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o badrw badrw.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o big_blocks_freed_list.o ../../../valgrind-3.14.0/memcheck/tests/big_blocks_freed_list.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o big_blocks_freed_list big_blocks_freed_list.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o brk2.o ../../../valgrind-3.14.0/memcheck/tests/brk2.c
../../../valgrind-3.14.0/memcheck/tests/brk2.c:9:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main () {
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o brk2 brk2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o buflen_check.o ../../../valgrind-3.14.0/memcheck/tests/buflen_check.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o buflen_check buflen_check.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o bug155125.o ../../../valgrind-3.14.0/memcheck/tests/bug155125.c
../../../valgrind-3.14.0/memcheck/tests/bug155125.c:3:6: warning: function declaration isn't a prototype [-Wstrict-prototypes]
void leak_begin_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end()
../../../valgrind-3.14.0/memcheck/tests/bug155125.c:7:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main() { leak_begin_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end(); return 0; }
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o bug155125 bug155125.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o bug287260.o ../../../valgrind-3.14.0/memcheck/tests/bug287260.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o bug287260 bug287260.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O3 -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o bug340392-bug340392.o `test -f 'bug340392.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`bug340392.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O3 -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o bug340392 bug340392-bug340392.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o calloc-overflow.o ../../../valgrind-3.14.0/memcheck/tests/calloc-overflow.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o calloc-overflow calloc-overflow.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o client-msg.o ../../../valgrind-3.14.0/memcheck/tests/client-msg.c
../../../valgrind-3.14.0/memcheck/tests/client-msg.c:3:6: warning: function declaration isn't a prototype [-Wstrict-prototypes]
void baz()
^~~
../../../valgrind-3.14.0/memcheck/tests/client-msg.c:8:6: warning: function declaration isn't a prototype [-Wstrict-prototypes]
void bar()
^~~
../../../valgrind-3.14.0/memcheck/tests/client-msg.c:13:6: warning: function declaration isn't a prototype [-Wstrict-prototypes]
void foo()
^~~
../../../valgrind-3.14.0/memcheck/tests/client-msg.c:18:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o client-msg client-msg.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o clientperm.o ../../../valgrind-3.14.0/memcheck/tests/clientperm.c
../../../valgrind-3.14.0/memcheck/tests/clientperm.c:7:5: warning: no previous prototype for 'main1' [-Wmissing-prototypes]
int main1 ( void )
^~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o clientperm clientperm.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o clireq_nofill.o ../../../valgrind-3.14.0/memcheck/tests/clireq_nofill.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o clireq_nofill clireq_nofill.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o clo_redzone.o ../../../valgrind-3.14.0/memcheck/tests/clo_redzone.c
../../../valgrind-3.14.0/memcheck/tests/clo_redzone.c:4:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o clo_redzone clo_redzone.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o cond_ld_st.o ../../../valgrind-3.14.0/memcheck/tests/cond_ld_st.c
../../../valgrind-3.14.0/memcheck/tests/cond_ld_st.c:45:6: warning: no previous prototype for 'do_conditional_load32' [-Wmissing-prototypes]
UInt do_conditional_load32 ( UInt* src, UInt alt, Bool b )
^~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/cond_ld_st.c:72:6: warning: no previous prototype for 'do_conditional_store32' [-Wmissing-prototypes]
UInt do_conditional_store32 ( UInt* dst, UInt alt, Bool b )
^~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/cond_ld_st.c:353:6: warning: no previous prototype for 'do_test_case_steer' [-Wmissing-prototypes]
void do_test_case_steer ( void (*fn)(int,Bool,const TestCase*),
^~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/cond_ld_st.c:614:6: warning: no previous prototype for 'usage' [-Wmissing-prototypes]
void usage ( char* pname )
^~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o cond_ld_st cond_ld_st.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o descr_belowsp.o ../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c: In function 'bad_things_below_sp':
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c:56:14: warning: passing argument 1 of 'describe' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
describe ("1500 bytes below a local var", p-1500);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c:45:29: note: expected 'char *' but argument is of type 'const char *'
static void describe (char* what, void* a)
~~~~~~^~~~
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c: In function 'describe_many':
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c:94:14: warning: cast discards 'volatile' qualifier from pointer target type [-Wcast-qual]
(void*)lowest_j);
^
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c:93:14: warning: passing argument 1 of 'describe' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
describe ("discovered address giving SEGV in thread stack",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c:45:29: note: expected 'char *' but argument is of type 'const char *'
static void describe (char* what, void* a)
~~~~~~^~~~
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c:95:14: warning: passing argument 1 of 'describe' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
describe ("byte just above highest guardpage byte",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c:45:29: note: expected 'char *' but argument is of type 'const char *'
static void describe (char* what, void* a)
~~~~~~^~~~
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c:98:52: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
(void*) VG_ROUNDUP(lowest_j, pagesize)-1);
^
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c:97:14: warning: passing argument 1 of 'describe' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
describe ("highest guardpage byte",
^~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c:45:29: note: expected 'char *' but argument is of type 'const char *'
static void describe (char* what, void* a)
~~~~~~^~~~
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c:99:14: warning: passing argument 1 of 'describe' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
describe ("lowest guardpage byte",
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/descr_belowsp.c:45:29: note: expected 'char *' but argument is of type 'const char *'
static void describe (char* what, void* a)
~~~~~~^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o descr_belowsp descr_belowsp.o -lpthread
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o leak_cpp_interior.o ../../../valgrind-3.14.0/memcheck/tests/leak_cpp_interior.cpp
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o leak_cpp_interior leak_cpp_interior.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o custom_alloc.o ../../../valgrind-3.14.0/memcheck/tests/custom_alloc.c
../../../valgrind-3.14.0/memcheck/tests/custom_alloc.c:14:7: warning: no previous prototype for 'get_superblock' [-Wmissing-prototypes]
void* get_superblock(void)
^~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/custom_alloc.c: In function 'custom_alloc':
../../../valgrind-3.14.0/memcheck/tests/custom_alloc.c:39:11: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
if (hp + size2 > hp_lim) {
^
../../../valgrind-3.14.0/memcheck/tests/custom_alloc.c:41:19: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
hp_lim = hp + SUPERBLOCK_SIZE - 1;
^
../../../valgrind-3.14.0/memcheck/tests/custom_alloc.c:41:37: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
hp_lim = hp + SUPERBLOCK_SIZE - 1;
^
../../../valgrind-3.14.0/memcheck/tests/custom_alloc.c:44:11: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
p = hp + RZ;
^
../../../valgrind-3.14.0/memcheck/tests/custom_alloc.c:45:7: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
hp += size2;
^~
../../../valgrind-3.14.0/memcheck/tests/custom_alloc.c: At top level:
../../../valgrind-3.14.0/memcheck/tests/custom_alloc.c:102:6: warning: no previous prototype for 'make_leak' [-Wmissing-prototypes]
void make_leak(void)
^~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o custom_alloc custom_alloc.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o custom-overlap.o ../../../valgrind-3.14.0/memcheck/tests/custom-overlap.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o custom-overlap custom-overlap.o
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o demangle.o ../../../valgrind-3.14.0/memcheck/tests/demangle.cpp
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o demangle demangle.o
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -std=c++0x -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o big_debuginfo_symbol-big_debuginfo_symbol.o `test -f 'big_debuginfo_symbol.cpp' || echo '../../../valgrind-3.14.0/memcheck/tests/'`big_debuginfo_symbol.cpp
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -std=c++0x -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o big_debuginfo_symbol big_debuginfo_symbol-big_debuginfo_symbol.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o deep-backtrace.o ../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:1:5: warning: no previous prototype for 'f1' [-Wmissing-prototypes]
int f1(int *p) { return *p; }
^~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:2:5: warning: no previous prototype for 'f2' [-Wmissing-prototypes]
int f2(int *p) { return f1(p); }
^~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:3:5: warning: no previous prototype for 'f3' [-Wmissing-prototypes]
int f3(int *p) { return f2(p); }
^~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:4:5: warning: no previous prototype for 'f4' [-Wmissing-prototypes]
int f4(int *p) { return f3(p); }
^~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:5:5: warning: no previous prototype for 'f5' [-Wmissing-prototypes]
int f5(int *p) { return f4(p); }
^~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:6:5: warning: no previous prototype for 'f6' [-Wmissing-prototypes]
int f6(int *p) { return f5(p); }
^~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:7:5: warning: no previous prototype for 'f7' [-Wmissing-prototypes]
int f7(int *p) { return f6(p); }
^~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:8:5: warning: no previous prototype for 'f8' [-Wmissing-prototypes]
int f8(int *p) { return f7(p); }
^~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:9:5: warning: no previous prototype for 'f9' [-Wmissing-prototypes]
int f9(int *p) { return f8(p); }
^~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:10:5: warning: no previous prototype for 'f10' [-Wmissing-prototypes]
int f10(int *p) { return f9(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:11:5: warning: no previous prototype for 'f11' [-Wmissing-prototypes]
int f11(int *p) { return f10(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:12:5: warning: no previous prototype for 'f12' [-Wmissing-prototypes]
int f12(int *p) { return f11(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:13:5: warning: no previous prototype for 'f13' [-Wmissing-prototypes]
int f13(int *p) { return f12(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:14:5: warning: no previous prototype for 'f14' [-Wmissing-prototypes]
int f14(int *p) { return f13(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:15:5: warning: no previous prototype for 'f15' [-Wmissing-prototypes]
int f15(int *p) { return f14(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:16:5: warning: no previous prototype for 'f16' [-Wmissing-prototypes]
int f16(int *p) { return f15(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:17:5: warning: no previous prototype for 'f17' [-Wmissing-prototypes]
int f17(int *p) { return f16(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:18:5: warning: no previous prototype for 'f18' [-Wmissing-prototypes]
int f18(int *p) { return f17(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:19:5: warning: no previous prototype for 'f19' [-Wmissing-prototypes]
int f19(int *p) { return f18(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:20:5: warning: no previous prototype for 'f20' [-Wmissing-prototypes]
int f20(int *p) { return f19(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:21:5: warning: no previous prototype for 'f21' [-Wmissing-prototypes]
int f21(int *p) { return f20(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:22:5: warning: no previous prototype for 'f22' [-Wmissing-prototypes]
int f22(int *p) { return f21(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:23:5: warning: no previous prototype for 'f23' [-Wmissing-prototypes]
int f23(int *p) { return f22(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:24:5: warning: no previous prototype for 'f24' [-Wmissing-prototypes]
int f24(int *p) { return f23(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:25:5: warning: no previous prototype for 'f25' [-Wmissing-prototypes]
int f25(int *p) { return f24(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:26:5: warning: no previous prototype for 'f26' [-Wmissing-prototypes]
int f26(int *p) { return f25(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:27:5: warning: no previous prototype for 'f27' [-Wmissing-prototypes]
int f27(int *p) { return f26(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:28:5: warning: no previous prototype for 'f28' [-Wmissing-prototypes]
int f28(int *p) { return f27(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:29:5: warning: no previous prototype for 'f29' [-Wmissing-prototypes]
int f29(int *p) { return f28(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:30:5: warning: no previous prototype for 'f30' [-Wmissing-prototypes]
int f30(int *p) { return f29(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:31:5: warning: no previous prototype for 'f31' [-Wmissing-prototypes]
int f31(int *p) { return f30(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:32:5: warning: no previous prototype for 'f32' [-Wmissing-prototypes]
int f32(int *p) { return f31(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:33:5: warning: no previous prototype for 'f33' [-Wmissing-prototypes]
int f33(int *p) { return f32(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:34:5: warning: no previous prototype for 'f34' [-Wmissing-prototypes]
int f34(int *p) { return f33(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:35:5: warning: no previous prototype for 'f35' [-Wmissing-prototypes]
int f35(int *p) { return f34(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:36:5: warning: no previous prototype for 'f36' [-Wmissing-prototypes]
int f36(int *p) { return f35(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:37:5: warning: no previous prototype for 'f37' [-Wmissing-prototypes]
int f37(int *p) { return f36(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:38:5: warning: no previous prototype for 'f38' [-Wmissing-prototypes]
int f38(int *p) { return f37(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:39:5: warning: no previous prototype for 'f39' [-Wmissing-prototypes]
int f39(int *p) { return f38(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:40:5: warning: no previous prototype for 'f40' [-Wmissing-prototypes]
int f40(int *p) { return f39(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:41:5: warning: no previous prototype for 'f41' [-Wmissing-prototypes]
int f41(int *p) { return f40(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:42:5: warning: no previous prototype for 'f42' [-Wmissing-prototypes]
int f42(int *p) { return f41(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:43:5: warning: no previous prototype for 'f43' [-Wmissing-prototypes]
int f43(int *p) { return f42(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:44:5: warning: no previous prototype for 'f44' [-Wmissing-prototypes]
int f44(int *p) { return f43(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:45:5: warning: no previous prototype for 'f45' [-Wmissing-prototypes]
int f45(int *p) { return f44(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:46:5: warning: no previous prototype for 'f46' [-Wmissing-prototypes]
int f46(int *p) { return f45(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:47:5: warning: no previous prototype for 'f47' [-Wmissing-prototypes]
int f47(int *p) { return f46(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:48:5: warning: no previous prototype for 'f48' [-Wmissing-prototypes]
int f48(int *p) { return f47(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:49:5: warning: no previous prototype for 'f49' [-Wmissing-prototypes]
int f49(int *p) { return f48(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:50:5: warning: no previous prototype for 'f50' [-Wmissing-prototypes]
int f50(int *p) { return f49(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:51:5: warning: no previous prototype for 'f51' [-Wmissing-prototypes]
int f51(int *p) { return f50(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:52:5: warning: no previous prototype for 'f52' [-Wmissing-prototypes]
int f52(int *p) { return f51(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:53:5: warning: no previous prototype for 'f53' [-Wmissing-prototypes]
int f53(int *p) { return f52(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:54:5: warning: no previous prototype for 'f54' [-Wmissing-prototypes]
int f54(int *p) { return f53(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:55:5: warning: no previous prototype for 'f55' [-Wmissing-prototypes]
int f55(int *p) { return f54(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:56:5: warning: no previous prototype for 'f56' [-Wmissing-prototypes]
int f56(int *p) { return f55(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:57:5: warning: no previous prototype for 'f57' [-Wmissing-prototypes]
int f57(int *p) { return f56(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:58:5: warning: no previous prototype for 'f58' [-Wmissing-prototypes]
int f58(int *p) { return f57(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:59:5: warning: no previous prototype for 'f59' [-Wmissing-prototypes]
int f59(int *p) { return f58(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:60:5: warning: no previous prototype for 'f60' [-Wmissing-prototypes]
int f60(int *p) { return f59(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:61:5: warning: no previous prototype for 'f61' [-Wmissing-prototypes]
int f61(int *p) { return f60(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:62:5: warning: no previous prototype for 'f62' [-Wmissing-prototypes]
int f62(int *p) { return f61(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:63:5: warning: no previous prototype for 'f63' [-Wmissing-prototypes]
int f63(int *p) { return f62(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:64:5: warning: no previous prototype for 'f64' [-Wmissing-prototypes]
int f64(int *p) { return f63(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:65:5: warning: no previous prototype for 'f65' [-Wmissing-prototypes]
int f65(int *p) { return f64(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:66:5: warning: no previous prototype for 'f66' [-Wmissing-prototypes]
int f66(int *p) { return f65(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:67:5: warning: no previous prototype for 'f67' [-Wmissing-prototypes]
int f67(int *p) { return f66(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:68:5: warning: no previous prototype for 'f68' [-Wmissing-prototypes]
int f68(int *p) { return f67(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:69:5: warning: no previous prototype for 'f69' [-Wmissing-prototypes]
int f69(int *p) { return f68(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:70:5: warning: no previous prototype for 'f70' [-Wmissing-prototypes]
int f70(int *p) { return f69(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:71:5: warning: no previous prototype for 'f71' [-Wmissing-prototypes]
int f71(int *p) { return f70(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:72:5: warning: no previous prototype for 'f72' [-Wmissing-prototypes]
int f72(int *p) { return f71(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:73:5: warning: no previous prototype for 'f73' [-Wmissing-prototypes]
int f73(int *p) { return f72(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:74:5: warning: no previous prototype for 'f74' [-Wmissing-prototypes]
int f74(int *p) { return f73(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:75:5: warning: no previous prototype for 'f75' [-Wmissing-prototypes]
int f75(int *p) { return f74(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:76:5: warning: no previous prototype for 'f76' [-Wmissing-prototypes]
int f76(int *p) { return f75(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:77:5: warning: no previous prototype for 'f77' [-Wmissing-prototypes]
int f77(int *p) { return f76(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:78:5: warning: no previous prototype for 'f78' [-Wmissing-prototypes]
int f78(int *p) { return f77(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:79:5: warning: no previous prototype for 'f79' [-Wmissing-prototypes]
int f79(int *p) { return f78(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:80:5: warning: no previous prototype for 'f80' [-Wmissing-prototypes]
int f80(int *p) { return f79(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:81:5: warning: no previous prototype for 'f81' [-Wmissing-prototypes]
int f81(int *p) { return f80(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:82:5: warning: no previous prototype for 'f82' [-Wmissing-prototypes]
int f82(int *p) { return f81(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:83:5: warning: no previous prototype for 'f83' [-Wmissing-prototypes]
int f83(int *p) { return f82(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:84:5: warning: no previous prototype for 'f84' [-Wmissing-prototypes]
int f84(int *p) { return f83(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:85:5: warning: no previous prototype for 'f85' [-Wmissing-prototypes]
int f85(int *p) { return f84(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:86:5: warning: no previous prototype for 'f86' [-Wmissing-prototypes]
int f86(int *p) { return f85(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:87:5: warning: no previous prototype for 'f87' [-Wmissing-prototypes]
int f87(int *p) { return f86(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:88:5: warning: no previous prototype for 'f88' [-Wmissing-prototypes]
int f88(int *p) { return f87(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:89:5: warning: no previous prototype for 'f89' [-Wmissing-prototypes]
int f89(int *p) { return f88(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:90:5: warning: no previous prototype for 'f90' [-Wmissing-prototypes]
int f90(int *p) { return f89(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:91:5: warning: no previous prototype for 'f91' [-Wmissing-prototypes]
int f91(int *p) { return f90(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:92:5: warning: no previous prototype for 'f92' [-Wmissing-prototypes]
int f92(int *p) { return f91(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:93:5: warning: no previous prototype for 'f93' [-Wmissing-prototypes]
int f93(int *p) { return f92(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:94:5: warning: no previous prototype for 'f94' [-Wmissing-prototypes]
int f94(int *p) { return f93(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:95:5: warning: no previous prototype for 'f95' [-Wmissing-prototypes]
int f95(int *p) { return f94(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:96:5: warning: no previous prototype for 'f96' [-Wmissing-prototypes]
int f96(int *p) { return f95(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:97:5: warning: no previous prototype for 'f97' [-Wmissing-prototypes]
int f97(int *p) { return f96(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:98:5: warning: no previous prototype for 'f98' [-Wmissing-prototypes]
int f98(int *p) { return f97(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:99:5: warning: no previous prototype for 'f99' [-Wmissing-prototypes]
int f99(int *p) { return f98(p); }
^~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:100:5: warning: no previous prototype for 'f100' [-Wmissing-prototypes]
int f100(int *p) { return f99(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:101:5: warning: no previous prototype for 'f101' [-Wmissing-prototypes]
int f101(int *p) { return f100(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:102:5: warning: no previous prototype for 'f102' [-Wmissing-prototypes]
int f102(int *p) { return f101(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:103:5: warning: no previous prototype for 'f103' [-Wmissing-prototypes]
int f103(int *p) { return f102(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:104:5: warning: no previous prototype for 'f104' [-Wmissing-prototypes]
int f104(int *p) { return f103(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:105:5: warning: no previous prototype for 'f105' [-Wmissing-prototypes]
int f105(int *p) { return f104(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:106:5: warning: no previous prototype for 'f106' [-Wmissing-prototypes]
int f106(int *p) { return f105(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:107:5: warning: no previous prototype for 'f107' [-Wmissing-prototypes]
int f107(int *p) { return f106(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:108:5: warning: no previous prototype for 'f108' [-Wmissing-prototypes]
int f108(int *p) { return f107(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:109:5: warning: no previous prototype for 'f109' [-Wmissing-prototypes]
int f109(int *p) { return f108(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:110:5: warning: no previous prototype for 'f110' [-Wmissing-prototypes]
int f110(int *p) { return f109(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:111:5: warning: no previous prototype for 'f111' [-Wmissing-prototypes]
int f111(int *p) { return f110(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:112:5: warning: no previous prototype for 'f112' [-Wmissing-prototypes]
int f112(int *p) { return f111(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:113:5: warning: no previous prototype for 'f113' [-Wmissing-prototypes]
int f113(int *p) { return f112(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:114:5: warning: no previous prototype for 'f114' [-Wmissing-prototypes]
int f114(int *p) { return f113(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:115:5: warning: no previous prototype for 'f115' [-Wmissing-prototypes]
int f115(int *p) { return f114(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:116:5: warning: no previous prototype for 'f116' [-Wmissing-prototypes]
int f116(int *p) { return f115(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:117:5: warning: no previous prototype for 'f117' [-Wmissing-prototypes]
int f117(int *p) { return f116(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:118:5: warning: no previous prototype for 'f118' [-Wmissing-prototypes]
int f118(int *p) { return f117(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:119:5: warning: no previous prototype for 'f119' [-Wmissing-prototypes]
int f119(int *p) { return f118(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:120:5: warning: no previous prototype for 'f120' [-Wmissing-prototypes]
int f120(int *p) { return f119(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:121:5: warning: no previous prototype for 'f121' [-Wmissing-prototypes]
int f121(int *p) { return f120(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:122:5: warning: no previous prototype for 'f122' [-Wmissing-prototypes]
int f122(int *p) { return f121(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:123:5: warning: no previous prototype for 'f123' [-Wmissing-prototypes]
int f123(int *p) { return f122(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:124:5: warning: no previous prototype for 'f124' [-Wmissing-prototypes]
int f124(int *p) { return f123(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:125:5: warning: no previous prototype for 'f125' [-Wmissing-prototypes]
int f125(int *p) { return f124(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:126:5: warning: no previous prototype for 'f126' [-Wmissing-prototypes]
int f126(int *p) { return f125(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:127:5: warning: no previous prototype for 'f127' [-Wmissing-prototypes]
int f127(int *p) { return f126(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:128:5: warning: no previous prototype for 'f128' [-Wmissing-prototypes]
int f128(int *p) { return f127(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:129:5: warning: no previous prototype for 'f129' [-Wmissing-prototypes]
int f129(int *p) { return f128(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:130:5: warning: no previous prototype for 'f130' [-Wmissing-prototypes]
int f130(int *p) { return f129(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:131:5: warning: no previous prototype for 'f131' [-Wmissing-prototypes]
int f131(int *p) { return f130(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:132:5: warning: no previous prototype for 'f132' [-Wmissing-prototypes]
int f132(int *p) { return f131(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:133:5: warning: no previous prototype for 'f133' [-Wmissing-prototypes]
int f133(int *p) { return f132(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:134:5: warning: no previous prototype for 'f134' [-Wmissing-prototypes]
int f134(int *p) { return f133(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:135:5: warning: no previous prototype for 'f135' [-Wmissing-prototypes]
int f135(int *p) { return f134(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:136:5: warning: no previous prototype for 'f136' [-Wmissing-prototypes]
int f136(int *p) { return f135(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:137:5: warning: no previous prototype for 'f137' [-Wmissing-prototypes]
int f137(int *p) { return f136(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:138:5: warning: no previous prototype for 'f138' [-Wmissing-prototypes]
int f138(int *p) { return f137(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:139:5: warning: no previous prototype for 'f139' [-Wmissing-prototypes]
int f139(int *p) { return f138(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:140:5: warning: no previous prototype for 'f140' [-Wmissing-prototypes]
int f140(int *p) { return f139(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:141:5: warning: no previous prototype for 'f141' [-Wmissing-prototypes]
int f141(int *p) { return f140(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:142:5: warning: no previous prototype for 'f142' [-Wmissing-prototypes]
int f142(int *p) { return f141(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:143:5: warning: no previous prototype for 'f143' [-Wmissing-prototypes]
int f143(int *p) { return f142(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:144:5: warning: no previous prototype for 'f144' [-Wmissing-prototypes]
int f144(int *p) { return f143(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:145:5: warning: no previous prototype for 'f145' [-Wmissing-prototypes]
int f145(int *p) { return f144(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:146:5: warning: no previous prototype for 'f146' [-Wmissing-prototypes]
int f146(int *p) { return f145(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:147:5: warning: no previous prototype for 'f147' [-Wmissing-prototypes]
int f147(int *p) { return f146(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:148:5: warning: no previous prototype for 'f148' [-Wmissing-prototypes]
int f148(int *p) { return f147(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:149:5: warning: no previous prototype for 'f149' [-Wmissing-prototypes]
int f149(int *p) { return f148(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:150:5: warning: no previous prototype for 'f150' [-Wmissing-prototypes]
int f150(int *p) { return f149(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:151:5: warning: no previous prototype for 'f151' [-Wmissing-prototypes]
int f151(int *p) { return f150(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:152:5: warning: no previous prototype for 'f152' [-Wmissing-prototypes]
int f152(int *p) { return f151(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:153:5: warning: no previous prototype for 'f153' [-Wmissing-prototypes]
int f153(int *p) { return f152(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:154:5: warning: no previous prototype for 'f154' [-Wmissing-prototypes]
int f154(int *p) { return f153(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:155:5: warning: no previous prototype for 'f155' [-Wmissing-prototypes]
int f155(int *p) { return f154(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:156:5: warning: no previous prototype for 'f156' [-Wmissing-prototypes]
int f156(int *p) { return f155(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:157:5: warning: no previous prototype for 'f157' [-Wmissing-prototypes]
int f157(int *p) { return f156(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:158:5: warning: no previous prototype for 'f158' [-Wmissing-prototypes]
int f158(int *p) { return f157(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:159:5: warning: no previous prototype for 'f159' [-Wmissing-prototypes]
int f159(int *p) { return f158(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:160:5: warning: no previous prototype for 'f160' [-Wmissing-prototypes]
int f160(int *p) { return f159(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:161:5: warning: no previous prototype for 'f161' [-Wmissing-prototypes]
int f161(int *p) { return f160(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:162:5: warning: no previous prototype for 'f162' [-Wmissing-prototypes]
int f162(int *p) { return f161(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:163:5: warning: no previous prototype for 'f163' [-Wmissing-prototypes]
int f163(int *p) { return f162(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:164:5: warning: no previous prototype for 'f164' [-Wmissing-prototypes]
int f164(int *p) { return f163(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:165:5: warning: no previous prototype for 'f165' [-Wmissing-prototypes]
int f165(int *p) { return f164(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:166:5: warning: no previous prototype for 'f166' [-Wmissing-prototypes]
int f166(int *p) { return f165(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:167:5: warning: no previous prototype for 'f167' [-Wmissing-prototypes]
int f167(int *p) { return f166(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:168:5: warning: no previous prototype for 'f168' [-Wmissing-prototypes]
int f168(int *p) { return f167(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:169:5: warning: no previous prototype for 'f169' [-Wmissing-prototypes]
int f169(int *p) { return f168(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:170:5: warning: no previous prototype for 'f170' [-Wmissing-prototypes]
int f170(int *p) { return f169(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:171:5: warning: no previous prototype for 'f171' [-Wmissing-prototypes]
int f171(int *p) { return f170(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:172:5: warning: no previous prototype for 'f172' [-Wmissing-prototypes]
int f172(int *p) { return f171(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:173:5: warning: no previous prototype for 'f173' [-Wmissing-prototypes]
int f173(int *p) { return f172(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:174:5: warning: no previous prototype for 'f174' [-Wmissing-prototypes]
int f174(int *p) { return f173(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:175:5: warning: no previous prototype for 'f175' [-Wmissing-prototypes]
int f175(int *p) { return f174(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:176:5: warning: no previous prototype for 'f176' [-Wmissing-prototypes]
int f176(int *p) { return f175(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:177:5: warning: no previous prototype for 'f177' [-Wmissing-prototypes]
int f177(int *p) { return f176(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:178:5: warning: no previous prototype for 'f178' [-Wmissing-prototypes]
int f178(int *p) { return f177(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:179:5: warning: no previous prototype for 'f179' [-Wmissing-prototypes]
int f179(int *p) { return f178(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:180:5: warning: no previous prototype for 'f180' [-Wmissing-prototypes]
int f180(int *p) { return f179(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:181:5: warning: no previous prototype for 'f181' [-Wmissing-prototypes]
int f181(int *p) { return f180(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:182:5: warning: no previous prototype for 'f182' [-Wmissing-prototypes]
int f182(int *p) { return f181(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:183:5: warning: no previous prototype for 'f183' [-Wmissing-prototypes]
int f183(int *p) { return f182(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:184:5: warning: no previous prototype for 'f184' [-Wmissing-prototypes]
int f184(int *p) { return f183(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:185:5: warning: no previous prototype for 'f185' [-Wmissing-prototypes]
int f185(int *p) { return f184(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:186:5: warning: no previous prototype for 'f186' [-Wmissing-prototypes]
int f186(int *p) { return f185(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:187:5: warning: no previous prototype for 'f187' [-Wmissing-prototypes]
int f187(int *p) { return f186(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:188:5: warning: no previous prototype for 'f188' [-Wmissing-prototypes]
int f188(int *p) { return f187(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:189:5: warning: no previous prototype for 'f189' [-Wmissing-prototypes]
int f189(int *p) { return f188(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:190:5: warning: no previous prototype for 'f190' [-Wmissing-prototypes]
int f190(int *p) { return f189(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:191:5: warning: no previous prototype for 'f191' [-Wmissing-prototypes]
int f191(int *p) { return f190(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:192:5: warning: no previous prototype for 'f192' [-Wmissing-prototypes]
int f192(int *p) { return f191(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:193:5: warning: no previous prototype for 'f193' [-Wmissing-prototypes]
int f193(int *p) { return f192(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:194:5: warning: no previous prototype for 'f194' [-Wmissing-prototypes]
int f194(int *p) { return f193(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:195:5: warning: no previous prototype for 'f195' [-Wmissing-prototypes]
int f195(int *p) { return f194(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:196:5: warning: no previous prototype for 'f196' [-Wmissing-prototypes]
int f196(int *p) { return f195(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:197:5: warning: no previous prototype for 'f197' [-Wmissing-prototypes]
int f197(int *p) { return f196(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:198:5: warning: no previous prototype for 'f198' [-Wmissing-prototypes]
int f198(int *p) { return f197(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:199:5: warning: no previous prototype for 'f199' [-Wmissing-prototypes]
int f199(int *p) { return f198(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:200:5: warning: no previous prototype for 'f200' [-Wmissing-prototypes]
int f200(int *p) { return f199(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:201:5: warning: no previous prototype for 'f201' [-Wmissing-prototypes]
int f201(int *p) { return f200(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:202:5: warning: no previous prototype for 'f202' [-Wmissing-prototypes]
int f202(int *p) { return f201(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:203:5: warning: no previous prototype for 'f203' [-Wmissing-prototypes]
int f203(int *p) { return f202(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:204:5: warning: no previous prototype for 'f204' [-Wmissing-prototypes]
int f204(int *p) { return f203(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:205:5: warning: no previous prototype for 'f205' [-Wmissing-prototypes]
int f205(int *p) { return f204(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:206:5: warning: no previous prototype for 'f206' [-Wmissing-prototypes]
int f206(int *p) { return f205(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:207:5: warning: no previous prototype for 'f207' [-Wmissing-prototypes]
int f207(int *p) { return f206(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:208:5: warning: no previous prototype for 'f208' [-Wmissing-prototypes]
int f208(int *p) { return f207(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:209:5: warning: no previous prototype for 'f209' [-Wmissing-prototypes]
int f209(int *p) { return f208(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:210:5: warning: no previous prototype for 'f210' [-Wmissing-prototypes]
int f210(int *p) { return f209(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:211:5: warning: no previous prototype for 'f211' [-Wmissing-prototypes]
int f211(int *p) { return f210(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:212:5: warning: no previous prototype for 'f212' [-Wmissing-prototypes]
int f212(int *p) { return f211(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:213:5: warning: no previous prototype for 'f213' [-Wmissing-prototypes]
int f213(int *p) { return f212(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:214:5: warning: no previous prototype for 'f214' [-Wmissing-prototypes]
int f214(int *p) { return f213(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:215:5: warning: no previous prototype for 'f215' [-Wmissing-prototypes]
int f215(int *p) { return f214(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:216:5: warning: no previous prototype for 'f216' [-Wmissing-prototypes]
int f216(int *p) { return f215(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:217:5: warning: no previous prototype for 'f217' [-Wmissing-prototypes]
int f217(int *p) { return f216(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:218:5: warning: no previous prototype for 'f218' [-Wmissing-prototypes]
int f218(int *p) { return f217(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:219:5: warning: no previous prototype for 'f219' [-Wmissing-prototypes]
int f219(int *p) { return f218(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:220:5: warning: no previous prototype for 'f220' [-Wmissing-prototypes]
int f220(int *p) { return f219(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:221:5: warning: no previous prototype for 'f221' [-Wmissing-prototypes]
int f221(int *p) { return f220(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:222:5: warning: no previous prototype for 'f222' [-Wmissing-prototypes]
int f222(int *p) { return f221(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:223:5: warning: no previous prototype for 'f223' [-Wmissing-prototypes]
int f223(int *p) { return f222(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:224:5: warning: no previous prototype for 'f224' [-Wmissing-prototypes]
int f224(int *p) { return f223(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:225:5: warning: no previous prototype for 'f225' [-Wmissing-prototypes]
int f225(int *p) { return f224(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:226:5: warning: no previous prototype for 'f226' [-Wmissing-prototypes]
int f226(int *p) { return f225(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:227:5: warning: no previous prototype for 'f227' [-Wmissing-prototypes]
int f227(int *p) { return f226(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:228:5: warning: no previous prototype for 'f228' [-Wmissing-prototypes]
int f228(int *p) { return f227(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:229:5: warning: no previous prototype for 'f229' [-Wmissing-prototypes]
int f229(int *p) { return f228(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:230:5: warning: no previous prototype for 'f230' [-Wmissing-prototypes]
int f230(int *p) { return f229(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:231:5: warning: no previous prototype for 'f231' [-Wmissing-prototypes]
int f231(int *p) { return f230(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:232:5: warning: no previous prototype for 'f232' [-Wmissing-prototypes]
int f232(int *p) { return f231(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:233:5: warning: no previous prototype for 'f233' [-Wmissing-prototypes]
int f233(int *p) { return f232(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:234:5: warning: no previous prototype for 'f234' [-Wmissing-prototypes]
int f234(int *p) { return f233(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:235:5: warning: no previous prototype for 'f235' [-Wmissing-prototypes]
int f235(int *p) { return f234(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:236:5: warning: no previous prototype for 'f236' [-Wmissing-prototypes]
int f236(int *p) { return f235(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:237:5: warning: no previous prototype for 'f237' [-Wmissing-prototypes]
int f237(int *p) { return f236(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:238:5: warning: no previous prototype for 'f238' [-Wmissing-prototypes]
int f238(int *p) { return f237(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:239:5: warning: no previous prototype for 'f239' [-Wmissing-prototypes]
int f239(int *p) { return f238(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:240:5: warning: no previous prototype for 'f240' [-Wmissing-prototypes]
int f240(int *p) { return f239(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:241:5: warning: no previous prototype for 'f241' [-Wmissing-prototypes]
int f241(int *p) { return f240(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:242:5: warning: no previous prototype for 'f242' [-Wmissing-prototypes]
int f242(int *p) { return f241(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:243:5: warning: no previous prototype for 'f243' [-Wmissing-prototypes]
int f243(int *p) { return f242(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:244:5: warning: no previous prototype for 'f244' [-Wmissing-prototypes]
int f244(int *p) { return f243(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:245:5: warning: no previous prototype for 'f245' [-Wmissing-prototypes]
int f245(int *p) { return f244(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:246:5: warning: no previous prototype for 'f246' [-Wmissing-prototypes]
int f246(int *p) { return f245(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:247:5: warning: no previous prototype for 'f247' [-Wmissing-prototypes]
int f247(int *p) { return f246(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:248:5: warning: no previous prototype for 'f248' [-Wmissing-prototypes]
int f248(int *p) { return f247(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:249:5: warning: no previous prototype for 'f249' [-Wmissing-prototypes]
int f249(int *p) { return f248(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:250:5: warning: no previous prototype for 'f250' [-Wmissing-prototypes]
int f250(int *p) { return f249(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:251:5: warning: no previous prototype for 'f251' [-Wmissing-prototypes]
int f251(int *p) { return f250(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:252:5: warning: no previous prototype for 'f252' [-Wmissing-prototypes]
int f252(int *p) { return f251(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:253:5: warning: no previous prototype for 'f253' [-Wmissing-prototypes]
int f253(int *p) { return f252(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:254:5: warning: no previous prototype for 'f254' [-Wmissing-prototypes]
int f254(int *p) { return f253(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:255:5: warning: no previous prototype for 'f255' [-Wmissing-prototypes]
int f255(int *p) { return f254(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:256:5: warning: no previous prototype for 'f256' [-Wmissing-prototypes]
int f256(int *p) { return f255(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:257:5: warning: no previous prototype for 'f257' [-Wmissing-prototypes]
int f257(int *p) { return f256(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:258:5: warning: no previous prototype for 'f258' [-Wmissing-prototypes]
int f258(int *p) { return f257(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:259:5: warning: no previous prototype for 'f259' [-Wmissing-prototypes]
int f259(int *p) { return f258(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:260:5: warning: no previous prototype for 'f260' [-Wmissing-prototypes]
int f260(int *p) { return f259(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:261:5: warning: no previous prototype for 'f261' [-Wmissing-prototypes]
int f261(int *p) { return f260(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:262:5: warning: no previous prototype for 'f262' [-Wmissing-prototypes]
int f262(int *p) { return f261(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:263:5: warning: no previous prototype for 'f263' [-Wmissing-prototypes]
int f263(int *p) { return f262(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:264:5: warning: no previous prototype for 'f264' [-Wmissing-prototypes]
int f264(int *p) { return f263(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:265:5: warning: no previous prototype for 'f265' [-Wmissing-prototypes]
int f265(int *p) { return f264(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:266:5: warning: no previous prototype for 'f266' [-Wmissing-prototypes]
int f266(int *p) { return f265(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:267:5: warning: no previous prototype for 'f267' [-Wmissing-prototypes]
int f267(int *p) { return f266(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:268:5: warning: no previous prototype for 'f268' [-Wmissing-prototypes]
int f268(int *p) { return f267(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:269:5: warning: no previous prototype for 'f269' [-Wmissing-prototypes]
int f269(int *p) { return f268(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:270:5: warning: no previous prototype for 'f270' [-Wmissing-prototypes]
int f270(int *p) { return f269(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:271:5: warning: no previous prototype for 'f271' [-Wmissing-prototypes]
int f271(int *p) { return f270(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:272:5: warning: no previous prototype for 'f272' [-Wmissing-prototypes]
int f272(int *p) { return f271(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:273:5: warning: no previous prototype for 'f273' [-Wmissing-prototypes]
int f273(int *p) { return f272(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:274:5: warning: no previous prototype for 'f274' [-Wmissing-prototypes]
int f274(int *p) { return f273(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:275:5: warning: no previous prototype for 'f275' [-Wmissing-prototypes]
int f275(int *p) { return f274(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:276:5: warning: no previous prototype for 'f276' [-Wmissing-prototypes]
int f276(int *p) { return f275(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:277:5: warning: no previous prototype for 'f277' [-Wmissing-prototypes]
int f277(int *p) { return f276(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:278:5: warning: no previous prototype for 'f278' [-Wmissing-prototypes]
int f278(int *p) { return f277(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:279:5: warning: no previous prototype for 'f279' [-Wmissing-prototypes]
int f279(int *p) { return f278(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:280:5: warning: no previous prototype for 'f280' [-Wmissing-prototypes]
int f280(int *p) { return f279(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:281:5: warning: no previous prototype for 'f281' [-Wmissing-prototypes]
int f281(int *p) { return f280(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:282:5: warning: no previous prototype for 'f282' [-Wmissing-prototypes]
int f282(int *p) { return f281(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:283:5: warning: no previous prototype for 'f283' [-Wmissing-prototypes]
int f283(int *p) { return f282(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:284:5: warning: no previous prototype for 'f284' [-Wmissing-prototypes]
int f284(int *p) { return f283(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:285:5: warning: no previous prototype for 'f285' [-Wmissing-prototypes]
int f285(int *p) { return f284(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:286:5: warning: no previous prototype for 'f286' [-Wmissing-prototypes]
int f286(int *p) { return f285(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:287:5: warning: no previous prototype for 'f287' [-Wmissing-prototypes]
int f287(int *p) { return f286(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:288:5: warning: no previous prototype for 'f288' [-Wmissing-prototypes]
int f288(int *p) { return f287(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:289:5: warning: no previous prototype for 'f289' [-Wmissing-prototypes]
int f289(int *p) { return f288(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:290:5: warning: no previous prototype for 'f290' [-Wmissing-prototypes]
int f290(int *p) { return f289(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:291:5: warning: no previous prototype for 'f291' [-Wmissing-prototypes]
int f291(int *p) { return f290(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:292:5: warning: no previous prototype for 'f292' [-Wmissing-prototypes]
int f292(int *p) { return f291(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:293:5: warning: no previous prototype for 'f293' [-Wmissing-prototypes]
int f293(int *p) { return f292(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:294:5: warning: no previous prototype for 'f294' [-Wmissing-prototypes]
int f294(int *p) { return f293(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:295:5: warning: no previous prototype for 'f295' [-Wmissing-prototypes]
int f295(int *p) { return f294(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:296:5: warning: no previous prototype for 'f296' [-Wmissing-prototypes]
int f296(int *p) { return f295(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:297:5: warning: no previous prototype for 'f297' [-Wmissing-prototypes]
int f297(int *p) { return f296(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:298:5: warning: no previous prototype for 'f298' [-Wmissing-prototypes]
int f298(int *p) { return f297(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:299:5: warning: no previous prototype for 'f299' [-Wmissing-prototypes]
int f299(int *p) { return f298(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:300:5: warning: no previous prototype for 'f300' [-Wmissing-prototypes]
int f300(int *p) { return f299(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:301:5: warning: no previous prototype for 'f301' [-Wmissing-prototypes]
int f301(int *p) { return f300(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:302:5: warning: no previous prototype for 'f302' [-Wmissing-prototypes]
int f302(int *p) { return f301(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:303:5: warning: no previous prototype for 'f303' [-Wmissing-prototypes]
int f303(int *p) { return f302(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:304:5: warning: no previous prototype for 'f304' [-Wmissing-prototypes]
int f304(int *p) { return f303(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:305:5: warning: no previous prototype for 'f305' [-Wmissing-prototypes]
int f305(int *p) { return f304(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:306:5: warning: no previous prototype for 'f306' [-Wmissing-prototypes]
int f306(int *p) { return f305(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:307:5: warning: no previous prototype for 'f307' [-Wmissing-prototypes]
int f307(int *p) { return f306(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:308:5: warning: no previous prototype for 'f308' [-Wmissing-prototypes]
int f308(int *p) { return f307(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:309:5: warning: no previous prototype for 'f309' [-Wmissing-prototypes]
int f309(int *p) { return f308(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:310:5: warning: no previous prototype for 'f310' [-Wmissing-prototypes]
int f310(int *p) { return f309(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:311:5: warning: no previous prototype for 'f311' [-Wmissing-prototypes]
int f311(int *p) { return f310(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:312:5: warning: no previous prototype for 'f312' [-Wmissing-prototypes]
int f312(int *p) { return f311(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:313:5: warning: no previous prototype for 'f313' [-Wmissing-prototypes]
int f313(int *p) { return f312(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:314:5: warning: no previous prototype for 'f314' [-Wmissing-prototypes]
int f314(int *p) { return f313(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:315:5: warning: no previous prototype for 'f315' [-Wmissing-prototypes]
int f315(int *p) { return f314(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:316:5: warning: no previous prototype for 'f316' [-Wmissing-prototypes]
int f316(int *p) { return f315(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:317:5: warning: no previous prototype for 'f317' [-Wmissing-prototypes]
int f317(int *p) { return f316(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:318:5: warning: no previous prototype for 'f318' [-Wmissing-prototypes]
int f318(int *p) { return f317(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:319:5: warning: no previous prototype for 'f319' [-Wmissing-prototypes]
int f319(int *p) { return f318(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:320:5: warning: no previous prototype for 'f320' [-Wmissing-prototypes]
int f320(int *p) { return f319(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:321:5: warning: no previous prototype for 'f321' [-Wmissing-prototypes]
int f321(int *p) { return f320(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:322:5: warning: no previous prototype for 'f322' [-Wmissing-prototypes]
int f322(int *p) { return f321(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:323:5: warning: no previous prototype for 'f323' [-Wmissing-prototypes]
int f323(int *p) { return f322(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:324:5: warning: no previous prototype for 'f324' [-Wmissing-prototypes]
int f324(int *p) { return f323(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:325:5: warning: no previous prototype for 'f325' [-Wmissing-prototypes]
int f325(int *p) { return f324(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:326:5: warning: no previous prototype for 'f326' [-Wmissing-prototypes]
int f326(int *p) { return f325(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:327:5: warning: no previous prototype for 'f327' [-Wmissing-prototypes]
int f327(int *p) { return f326(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:328:5: warning: no previous prototype for 'f328' [-Wmissing-prototypes]
int f328(int *p) { return f327(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:329:5: warning: no previous prototype for 'f329' [-Wmissing-prototypes]
int f329(int *p) { return f328(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:330:5: warning: no previous prototype for 'f330' [-Wmissing-prototypes]
int f330(int *p) { return f329(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:331:5: warning: no previous prototype for 'f331' [-Wmissing-prototypes]
int f331(int *p) { return f330(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:332:5: warning: no previous prototype for 'f332' [-Wmissing-prototypes]
int f332(int *p) { return f331(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:333:5: warning: no previous prototype for 'f333' [-Wmissing-prototypes]
int f333(int *p) { return f332(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:334:5: warning: no previous prototype for 'f334' [-Wmissing-prototypes]
int f334(int *p) { return f333(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:335:5: warning: no previous prototype for 'f335' [-Wmissing-prototypes]
int f335(int *p) { return f334(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:336:5: warning: no previous prototype for 'f336' [-Wmissing-prototypes]
int f336(int *p) { return f335(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:337:5: warning: no previous prototype for 'f337' [-Wmissing-prototypes]
int f337(int *p) { return f336(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:338:5: warning: no previous prototype for 'f338' [-Wmissing-prototypes]
int f338(int *p) { return f337(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:339:5: warning: no previous prototype for 'f339' [-Wmissing-prototypes]
int f339(int *p) { return f338(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:340:5: warning: no previous prototype for 'f340' [-Wmissing-prototypes]
int f340(int *p) { return f339(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:341:5: warning: no previous prototype for 'f341' [-Wmissing-prototypes]
int f341(int *p) { return f340(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:342:5: warning: no previous prototype for 'f342' [-Wmissing-prototypes]
int f342(int *p) { return f341(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:343:5: warning: no previous prototype for 'f343' [-Wmissing-prototypes]
int f343(int *p) { return f342(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:344:5: warning: no previous prototype for 'f344' [-Wmissing-prototypes]
int f344(int *p) { return f343(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:345:5: warning: no previous prototype for 'f345' [-Wmissing-prototypes]
int f345(int *p) { return f344(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:346:5: warning: no previous prototype for 'f346' [-Wmissing-prototypes]
int f346(int *p) { return f345(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:347:5: warning: no previous prototype for 'f347' [-Wmissing-prototypes]
int f347(int *p) { return f346(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:348:5: warning: no previous prototype for 'f348' [-Wmissing-prototypes]
int f348(int *p) { return f347(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:349:5: warning: no previous prototype for 'f349' [-Wmissing-prototypes]
int f349(int *p) { return f348(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:350:5: warning: no previous prototype for 'f350' [-Wmissing-prototypes]
int f350(int *p) { return f349(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:351:5: warning: no previous prototype for 'f351' [-Wmissing-prototypes]
int f351(int *p) { return f350(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:352:5: warning: no previous prototype for 'f352' [-Wmissing-prototypes]
int f352(int *p) { return f351(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:353:5: warning: no previous prototype for 'f353' [-Wmissing-prototypes]
int f353(int *p) { return f352(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:354:5: warning: no previous prototype for 'f354' [-Wmissing-prototypes]
int f354(int *p) { return f353(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:355:5: warning: no previous prototype for 'f355' [-Wmissing-prototypes]
int f355(int *p) { return f354(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:356:5: warning: no previous prototype for 'f356' [-Wmissing-prototypes]
int f356(int *p) { return f355(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:357:5: warning: no previous prototype for 'f357' [-Wmissing-prototypes]
int f357(int *p) { return f356(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:358:5: warning: no previous prototype for 'f358' [-Wmissing-prototypes]
int f358(int *p) { return f357(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:359:5: warning: no previous prototype for 'f359' [-Wmissing-prototypes]
int f359(int *p) { return f358(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:360:5: warning: no previous prototype for 'f360' [-Wmissing-prototypes]
int f360(int *p) { return f359(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:361:5: warning: no previous prototype for 'f361' [-Wmissing-prototypes]
int f361(int *p) { return f360(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:362:5: warning: no previous prototype for 'f362' [-Wmissing-prototypes]
int f362(int *p) { return f361(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:363:5: warning: no previous prototype for 'f363' [-Wmissing-prototypes]
int f363(int *p) { return f362(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:364:5: warning: no previous prototype for 'f364' [-Wmissing-prototypes]
int f364(int *p) { return f363(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:365:5: warning: no previous prototype for 'f365' [-Wmissing-prototypes]
int f365(int *p) { return f364(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:366:5: warning: no previous prototype for 'f366' [-Wmissing-prototypes]
int f366(int *p) { return f365(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:367:5: warning: no previous prototype for 'f367' [-Wmissing-prototypes]
int f367(int *p) { return f366(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:368:5: warning: no previous prototype for 'f368' [-Wmissing-prototypes]
int f368(int *p) { return f367(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:369:5: warning: no previous prototype for 'f369' [-Wmissing-prototypes]
int f369(int *p) { return f368(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:370:5: warning: no previous prototype for 'f370' [-Wmissing-prototypes]
int f370(int *p) { return f369(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:371:5: warning: no previous prototype for 'f371' [-Wmissing-prototypes]
int f371(int *p) { return f370(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:372:5: warning: no previous prototype for 'f372' [-Wmissing-prototypes]
int f372(int *p) { return f371(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:373:5: warning: no previous prototype for 'f373' [-Wmissing-prototypes]
int f373(int *p) { return f372(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:374:5: warning: no previous prototype for 'f374' [-Wmissing-prototypes]
int f374(int *p) { return f373(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:375:5: warning: no previous prototype for 'f375' [-Wmissing-prototypes]
int f375(int *p) { return f374(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:376:5: warning: no previous prototype for 'f376' [-Wmissing-prototypes]
int f376(int *p) { return f375(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:377:5: warning: no previous prototype for 'f377' [-Wmissing-prototypes]
int f377(int *p) { return f376(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:378:5: warning: no previous prototype for 'f378' [-Wmissing-prototypes]
int f378(int *p) { return f377(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:379:5: warning: no previous prototype for 'f379' [-Wmissing-prototypes]
int f379(int *p) { return f378(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:380:5: warning: no previous prototype for 'f380' [-Wmissing-prototypes]
int f380(int *p) { return f379(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:381:5: warning: no previous prototype for 'f381' [-Wmissing-prototypes]
int f381(int *p) { return f380(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:382:5: warning: no previous prototype for 'f382' [-Wmissing-prototypes]
int f382(int *p) { return f381(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:383:5: warning: no previous prototype for 'f383' [-Wmissing-prototypes]
int f383(int *p) { return f382(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:384:5: warning: no previous prototype for 'f384' [-Wmissing-prototypes]
int f384(int *p) { return f383(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:385:5: warning: no previous prototype for 'f385' [-Wmissing-prototypes]
int f385(int *p) { return f384(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:386:5: warning: no previous prototype for 'f386' [-Wmissing-prototypes]
int f386(int *p) { return f385(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:387:5: warning: no previous prototype for 'f387' [-Wmissing-prototypes]
int f387(int *p) { return f386(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:388:5: warning: no previous prototype for 'f388' [-Wmissing-prototypes]
int f388(int *p) { return f387(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:389:5: warning: no previous prototype for 'f389' [-Wmissing-prototypes]
int f389(int *p) { return f388(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:390:5: warning: no previous prototype for 'f390' [-Wmissing-prototypes]
int f390(int *p) { return f389(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:391:5: warning: no previous prototype for 'f391' [-Wmissing-prototypes]
int f391(int *p) { return f390(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:392:5: warning: no previous prototype for 'f392' [-Wmissing-prototypes]
int f392(int *p) { return f391(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:393:5: warning: no previous prototype for 'f393' [-Wmissing-prototypes]
int f393(int *p) { return f392(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:394:5: warning: no previous prototype for 'f394' [-Wmissing-prototypes]
int f394(int *p) { return f393(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:395:5: warning: no previous prototype for 'f395' [-Wmissing-prototypes]
int f395(int *p) { return f394(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:396:5: warning: no previous prototype for 'f396' [-Wmissing-prototypes]
int f396(int *p) { return f395(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:397:5: warning: no previous prototype for 'f397' [-Wmissing-prototypes]
int f397(int *p) { return f396(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:398:5: warning: no previous prototype for 'f398' [-Wmissing-prototypes]
int f398(int *p) { return f397(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:399:5: warning: no previous prototype for 'f399' [-Wmissing-prototypes]
int f399(int *p) { return f398(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:400:5: warning: no previous prototype for 'f400' [-Wmissing-prototypes]
int f400(int *p) { return f399(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:401:5: warning: no previous prototype for 'f401' [-Wmissing-prototypes]
int f401(int *p) { return f400(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:402:5: warning: no previous prototype for 'f402' [-Wmissing-prototypes]
int f402(int *p) { return f401(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:403:5: warning: no previous prototype for 'f403' [-Wmissing-prototypes]
int f403(int *p) { return f402(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:404:5: warning: no previous prototype for 'f404' [-Wmissing-prototypes]
int f404(int *p) { return f403(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:405:5: warning: no previous prototype for 'f405' [-Wmissing-prototypes]
int f405(int *p) { return f404(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:406:5: warning: no previous prototype for 'f406' [-Wmissing-prototypes]
int f406(int *p) { return f405(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:407:5: warning: no previous prototype for 'f407' [-Wmissing-prototypes]
int f407(int *p) { return f406(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:408:5: warning: no previous prototype for 'f408' [-Wmissing-prototypes]
int f408(int *p) { return f407(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:409:5: warning: no previous prototype for 'f409' [-Wmissing-prototypes]
int f409(int *p) { return f408(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:410:5: warning: no previous prototype for 'f410' [-Wmissing-prototypes]
int f410(int *p) { return f409(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:411:5: warning: no previous prototype for 'f411' [-Wmissing-prototypes]
int f411(int *p) { return f410(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:412:5: warning: no previous prototype for 'f412' [-Wmissing-prototypes]
int f412(int *p) { return f411(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:413:5: warning: no previous prototype for 'f413' [-Wmissing-prototypes]
int f413(int *p) { return f412(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:414:5: warning: no previous prototype for 'f414' [-Wmissing-prototypes]
int f414(int *p) { return f413(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:415:5: warning: no previous prototype for 'f415' [-Wmissing-prototypes]
int f415(int *p) { return f414(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:416:5: warning: no previous prototype for 'f416' [-Wmissing-prototypes]
int f416(int *p) { return f415(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:417:5: warning: no previous prototype for 'f417' [-Wmissing-prototypes]
int f417(int *p) { return f416(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:418:5: warning: no previous prototype for 'f418' [-Wmissing-prototypes]
int f418(int *p) { return f417(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:419:5: warning: no previous prototype for 'f419' [-Wmissing-prototypes]
int f419(int *p) { return f418(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:420:5: warning: no previous prototype for 'f420' [-Wmissing-prototypes]
int f420(int *p) { return f419(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:421:5: warning: no previous prototype for 'f421' [-Wmissing-prototypes]
int f421(int *p) { return f420(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:422:5: warning: no previous prototype for 'f422' [-Wmissing-prototypes]
int f422(int *p) { return f421(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:423:5: warning: no previous prototype for 'f423' [-Wmissing-prototypes]
int f423(int *p) { return f422(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:424:5: warning: no previous prototype for 'f424' [-Wmissing-prototypes]
int f424(int *p) { return f423(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:425:5: warning: no previous prototype for 'f425' [-Wmissing-prototypes]
int f425(int *p) { return f424(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:426:5: warning: no previous prototype for 'f426' [-Wmissing-prototypes]
int f426(int *p) { return f425(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:427:5: warning: no previous prototype for 'f427' [-Wmissing-prototypes]
int f427(int *p) { return f426(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:428:5: warning: no previous prototype for 'f428' [-Wmissing-prototypes]
int f428(int *p) { return f427(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:429:5: warning: no previous prototype for 'f429' [-Wmissing-prototypes]
int f429(int *p) { return f428(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:430:5: warning: no previous prototype for 'f430' [-Wmissing-prototypes]
int f430(int *p) { return f429(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:431:5: warning: no previous prototype for 'f431' [-Wmissing-prototypes]
int f431(int *p) { return f430(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:432:5: warning: no previous prototype for 'f432' [-Wmissing-prototypes]
int f432(int *p) { return f431(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:433:5: warning: no previous prototype for 'f433' [-Wmissing-prototypes]
int f433(int *p) { return f432(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:434:5: warning: no previous prototype for 'f434' [-Wmissing-prototypes]
int f434(int *p) { return f433(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:435:5: warning: no previous prototype for 'f435' [-Wmissing-prototypes]
int f435(int *p) { return f434(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:436:5: warning: no previous prototype for 'f436' [-Wmissing-prototypes]
int f436(int *p) { return f435(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:437:5: warning: no previous prototype for 'f437' [-Wmissing-prototypes]
int f437(int *p) { return f436(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:438:5: warning: no previous prototype for 'f438' [-Wmissing-prototypes]
int f438(int *p) { return f437(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:439:5: warning: no previous prototype for 'f439' [-Wmissing-prototypes]
int f439(int *p) { return f438(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:440:5: warning: no previous prototype for 'f440' [-Wmissing-prototypes]
int f440(int *p) { return f439(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:441:5: warning: no previous prototype for 'f441' [-Wmissing-prototypes]
int f441(int *p) { return f440(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:442:5: warning: no previous prototype for 'f442' [-Wmissing-prototypes]
int f442(int *p) { return f441(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:443:5: warning: no previous prototype for 'f443' [-Wmissing-prototypes]
int f443(int *p) { return f442(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:444:5: warning: no previous prototype for 'f444' [-Wmissing-prototypes]
int f444(int *p) { return f443(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:445:5: warning: no previous prototype for 'f445' [-Wmissing-prototypes]
int f445(int *p) { return f444(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:446:5: warning: no previous prototype for 'f446' [-Wmissing-prototypes]
int f446(int *p) { return f445(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:447:5: warning: no previous prototype for 'f447' [-Wmissing-prototypes]
int f447(int *p) { return f446(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:448:5: warning: no previous prototype for 'f448' [-Wmissing-prototypes]
int f448(int *p) { return f447(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:449:5: warning: no previous prototype for 'f449' [-Wmissing-prototypes]
int f449(int *p) { return f448(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:450:5: warning: no previous prototype for 'f450' [-Wmissing-prototypes]
int f450(int *p) { return f449(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:451:5: warning: no previous prototype for 'f451' [-Wmissing-prototypes]
int f451(int *p) { return f450(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:452:5: warning: no previous prototype for 'f452' [-Wmissing-prototypes]
int f452(int *p) { return f451(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:453:5: warning: no previous prototype for 'f453' [-Wmissing-prototypes]
int f453(int *p) { return f452(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:454:5: warning: no previous prototype for 'f454' [-Wmissing-prototypes]
int f454(int *p) { return f453(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:455:5: warning: no previous prototype for 'f455' [-Wmissing-prototypes]
int f455(int *p) { return f454(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:456:5: warning: no previous prototype for 'f456' [-Wmissing-prototypes]
int f456(int *p) { return f455(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:457:5: warning: no previous prototype for 'f457' [-Wmissing-prototypes]
int f457(int *p) { return f456(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:458:5: warning: no previous prototype for 'f458' [-Wmissing-prototypes]
int f458(int *p) { return f457(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:459:5: warning: no previous prototype for 'f459' [-Wmissing-prototypes]
int f459(int *p) { return f458(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:460:5: warning: no previous prototype for 'f460' [-Wmissing-prototypes]
int f460(int *p) { return f459(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:461:5: warning: no previous prototype for 'f461' [-Wmissing-prototypes]
int f461(int *p) { return f460(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:462:5: warning: no previous prototype for 'f462' [-Wmissing-prototypes]
int f462(int *p) { return f461(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:463:5: warning: no previous prototype for 'f463' [-Wmissing-prototypes]
int f463(int *p) { return f462(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:464:5: warning: no previous prototype for 'f464' [-Wmissing-prototypes]
int f464(int *p) { return f463(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:465:5: warning: no previous prototype for 'f465' [-Wmissing-prototypes]
int f465(int *p) { return f464(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:466:5: warning: no previous prototype for 'f466' [-Wmissing-prototypes]
int f466(int *p) { return f465(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:467:5: warning: no previous prototype for 'f467' [-Wmissing-prototypes]
int f467(int *p) { return f466(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:468:5: warning: no previous prototype for 'f468' [-Wmissing-prototypes]
int f468(int *p) { return f467(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:469:5: warning: no previous prototype for 'f469' [-Wmissing-prototypes]
int f469(int *p) { return f468(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:470:5: warning: no previous prototype for 'f470' [-Wmissing-prototypes]
int f470(int *p) { return f469(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:471:5: warning: no previous prototype for 'f471' [-Wmissing-prototypes]
int f471(int *p) { return f470(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:472:5: warning: no previous prototype for 'f472' [-Wmissing-prototypes]
int f472(int *p) { return f471(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:473:5: warning: no previous prototype for 'f473' [-Wmissing-prototypes]
int f473(int *p) { return f472(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:474:5: warning: no previous prototype for 'f474' [-Wmissing-prototypes]
int f474(int *p) { return f473(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:475:5: warning: no previous prototype for 'f475' [-Wmissing-prototypes]
int f475(int *p) { return f474(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:476:5: warning: no previous prototype for 'f476' [-Wmissing-prototypes]
int f476(int *p) { return f475(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:477:5: warning: no previous prototype for 'f477' [-Wmissing-prototypes]
int f477(int *p) { return f476(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:478:5: warning: no previous prototype for 'f478' [-Wmissing-prototypes]
int f478(int *p) { return f477(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:479:5: warning: no previous prototype for 'f479' [-Wmissing-prototypes]
int f479(int *p) { return f478(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:480:5: warning: no previous prototype for 'f480' [-Wmissing-prototypes]
int f480(int *p) { return f479(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:481:5: warning: no previous prototype for 'f481' [-Wmissing-prototypes]
int f481(int *p) { return f480(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:482:5: warning: no previous prototype for 'f482' [-Wmissing-prototypes]
int f482(int *p) { return f481(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:483:5: warning: no previous prototype for 'f483' [-Wmissing-prototypes]
int f483(int *p) { return f482(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:484:5: warning: no previous prototype for 'f484' [-Wmissing-prototypes]
int f484(int *p) { return f483(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:485:5: warning: no previous prototype for 'f485' [-Wmissing-prototypes]
int f485(int *p) { return f484(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:486:5: warning: no previous prototype for 'f486' [-Wmissing-prototypes]
int f486(int *p) { return f485(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:487:5: warning: no previous prototype for 'f487' [-Wmissing-prototypes]
int f487(int *p) { return f486(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:488:5: warning: no previous prototype for 'f488' [-Wmissing-prototypes]
int f488(int *p) { return f487(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:489:5: warning: no previous prototype for 'f489' [-Wmissing-prototypes]
int f489(int *p) { return f488(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:490:5: warning: no previous prototype for 'f490' [-Wmissing-prototypes]
int f490(int *p) { return f489(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:491:5: warning: no previous prototype for 'f491' [-Wmissing-prototypes]
int f491(int *p) { return f490(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:492:5: warning: no previous prototype for 'f492' [-Wmissing-prototypes]
int f492(int *p) { return f491(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:493:5: warning: no previous prototype for 'f493' [-Wmissing-prototypes]
int f493(int *p) { return f492(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:494:5: warning: no previous prototype for 'f494' [-Wmissing-prototypes]
int f494(int *p) { return f493(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:495:5: warning: no previous prototype for 'f495' [-Wmissing-prototypes]
int f495(int *p) { return f494(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:496:5: warning: no previous prototype for 'f496' [-Wmissing-prototypes]
int f496(int *p) { return f495(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:497:5: warning: no previous prototype for 'f497' [-Wmissing-prototypes]
int f497(int *p) { return f496(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:498:5: warning: no previous prototype for 'f498' [-Wmissing-prototypes]
int f498(int *p) { return f497(p); }
^~~~
../../../valgrind-3.14.0/memcheck/tests/deep-backtrace.c:499:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main() { return f498(0); }
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o deep-backtrace deep-backtrace.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o describe-block.o ../../../valgrind-3.14.0/memcheck/tests/describe-block.c
../../../valgrind-3.14.0/memcheck/tests/describe-block.c:3:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o describe-block describe-block.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o doublefree.o ../../../valgrind-3.14.0/memcheck/tests/doublefree.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o doublefree doublefree.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o error_counts-error_counts.o `test -f 'error_counts.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`error_counts.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o error_counts error_counts-error_counts.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o errs1.o ../../../valgrind-3.14.0/memcheck/tests/errs1.c
../../../valgrind-3.14.0/memcheck/tests/errs1.c:7:6: warning: no previous prototype for 'ddd' [-Wmissing-prototypes]
void ddd ( void ) { p[-1] += 'z'; }
^~~
../../../valgrind-3.14.0/memcheck/tests/errs1.c:8:6: warning: no previous prototype for 'ccc' [-Wmissing-prototypes]
void ccc ( void ) { ddd(); }
^~~
../../../valgrind-3.14.0/memcheck/tests/errs1.c:9:6: warning: no previous prototype for 'bbb' [-Wmissing-prototypes]
void bbb ( void ) { ccc(); }
^~~
../../../valgrind-3.14.0/memcheck/tests/errs1.c:10:6: warning: no previous prototype for 'aaa' [-Wmissing-prototypes]
void aaa ( void ) { bbb(); }
^~~
../../../valgrind-3.14.0/memcheck/tests/errs1.c:12:6: warning: no previous prototype for 'zzzzzzz' [-Wmissing-prototypes]
void zzzzzzz ( void ) { p = malloc(10); }
^~~~~~~
../../../valgrind-3.14.0/memcheck/tests/errs1.c:13:6: warning: no previous prototype for 'yyy' [-Wmissing-prototypes]
void yyy ( void ) { zzzzzzz(); }
^~~
../../../valgrind-3.14.0/memcheck/tests/errs1.c:14:6: warning: no previous prototype for 'xxx' [-Wmissing-prototypes]
void xxx ( void ) { yyy(); }
^~~
../../../valgrind-3.14.0/memcheck/tests/errs1.c:15:6: warning: no previous prototype for 'www' [-Wmissing-prototypes]
void www ( void ) { xxx(); }
^~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o errs1 errs1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o exitprog.o ../../../valgrind-3.14.0/memcheck/tests/exitprog.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o exitprog exitprog.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-nonnull -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o execve1-execve1.o `test -f 'execve1.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`execve1.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-nonnull -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o execve1 execve1-execve1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-nonnull -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o execve2-execve2.o `test -f 'execve2.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`execve2.c
../../../valgrind-3.14.0/memcheck/tests/execve2.c: In function 'main':
../../../valgrind-3.14.0/memcheck/tests/execve2.c:7:30: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *const argv_exe[] = {"true", NULL};
^~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-nonnull -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o execve2 execve2-execve2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o erringfds.o ../../../valgrind-3.14.0/memcheck/tests/erringfds.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o erringfds erringfds.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o err_disable1.o ../../../valgrind-3.14.0/memcheck/tests/err_disable1.c
../../../valgrind-3.14.0/memcheck/tests/err_disable1.c:11:32: warning: no previous prototype for 'usechar' [-Wmissing-prototypes]
__attribute__((noinline)) void usechar ( char c )
^~~~~~~
../../../valgrind-3.14.0/memcheck/tests/err_disable1.c:19:32: warning: no previous prototype for 'err' [-Wmissing-prototypes]
__attribute__((noinline)) void err ( void )
^~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o err_disable1 err_disable1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o err_disable2.o ../../../valgrind-3.14.0/memcheck/tests/err_disable2.c
../../../valgrind-3.14.0/memcheck/tests/err_disable2.c:12:32: warning: no previous prototype for 'usechar' [-Wmissing-prototypes]
__attribute__((noinline)) void usechar ( char c )
^~~~~~~
../../../valgrind-3.14.0/memcheck/tests/err_disable2.c:20:32: warning: no previous prototype for 'err' [-Wmissing-prototypes]
__attribute__((noinline)) void err ( void )
^~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o err_disable2 err_disable2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o err_disable3.o ../../../valgrind-3.14.0/memcheck/tests/err_disable3.c
../../../valgrind-3.14.0/memcheck/tests/err_disable3.c:15:32: warning: no previous prototype for 'usechar' [-Wmissing-prototypes]
__attribute__((noinline)) void usechar ( char c )
^~~~~~~
../../../valgrind-3.14.0/memcheck/tests/err_disable3.c:23:32: warning: no previous prototype for 'err' [-Wmissing-prototypes]
__attribute__((noinline)) void err ( void )
^~~
../../../valgrind-3.14.0/memcheck/tests/err_disable3.c:28:7: warning: no previous prototype for 'child_fn' [-Wmissing-prototypes]
void* child_fn ( void* arg )
^~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o err_disable3 err_disable3.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o err_disable4-err_disable4.o `test -f 'err_disable4.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`err_disable4.c
../../../valgrind-3.14.0/memcheck/tests/err_disable4.c:36:32: warning: no previous prototype for 'usechar' [-Wmissing-prototypes]
__attribute__((noinline)) void usechar ( char c )
^~~~~~~
../../../valgrind-3.14.0/memcheck/tests/err_disable4.c:44:32: warning: no previous prototype for 'err' [-Wmissing-prototypes]
__attribute__((noinline)) void err ( void )
^~~
../../../valgrind-3.14.0/memcheck/tests/err_disable4.c:49:7: warning: no previous prototype for 'child_fn_1' [-Wmissing-prototypes]
void* child_fn_1 ( void* arg )
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/err_disable4.c:61:7: warning: no previous prototype for 'child_fn_2' [-Wmissing-prototypes]
void* child_fn_2 ( void* arg )
^~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o err_disable4 err_disable4-err_disable4.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o err_disable_arange1.o ../../../valgrind-3.14.0/memcheck/tests/err_disable_arange1.c
../../../valgrind-3.14.0/memcheck/tests/err_disable_arange1.c: In function 'main':
../../../valgrind-3.14.0/memcheck/tests/err_disable_arange1.c:15:8: warning: cast discards 'volatile' qualifier from pointer target type [-Wcast-qual]
free((void*)mem);
^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o err_disable_arange1 err_disable_arange1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o file_locking.o ../../../valgrind-3.14.0/memcheck/tests/file_locking.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o file_locking file_locking.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fprw-fprw.o `test -f 'fprw.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`fprw.c
../../../valgrind-3.14.0/memcheck/tests/fprw.c: In function 'main':
../../../valgrind-3.14.0/memcheck/tests/fprw.c:24:7: warning: cast increases required alignment of target type [-Wcast-align]
* ((double*)ip) = 1.2 + d;
^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fprw fprw-fprw.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fwrite.o ../../../valgrind-3.14.0/memcheck/tests/fwrite.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fwrite fwrite.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o inits-inits.o `test -f 'inits.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`inits.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o inits inits-inits.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o inline.o ../../../valgrind-3.14.0/memcheck/tests/inline.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o inline inline.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -w -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o inlinfo-inlinfo.o `test -f 'inlinfo.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`inlinfo.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -w -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o inlinfo inlinfo-inlinfo.o
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o inltemplate-inltemplate.o `test -f 'inltemplate.cpp' || echo '../../../valgrind-3.14.0/memcheck/tests/'`inltemplate.cpp
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o inltemplate inltemplate-inltemplate.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o holey_buffer_too_small.o ../../../valgrind-3.14.0/memcheck/tests/holey_buffer_too_small.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o holey_buffer_too_small holey_buffer_too_small.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o leak-0.o ../../../valgrind-3.14.0/memcheck/tests/leak-0.c
../../../valgrind-3.14.0/memcheck/tests/leak-0.c:8:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o leak-0 leak-0.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o leak-cases.o ../../../valgrind-3.14.0/memcheck/tests/leak-cases.c
../../../valgrind-3.14.0/memcheck/tests/leak-cases.c:48:7: warning: no previous prototype for 'mk' [-Wmissing-prototypes]
Node* mk(Node* next)
^~
../../../valgrind-3.14.0/memcheck/tests/leak-cases.c:68:6: warning: no previous prototype for 'f' [-Wmissing-prototypes]
void f(void)
^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o leak-cases leak-cases.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o leak-cycle.o ../../../valgrind-3.14.0/memcheck/tests/leak-cycle.c
../../../valgrind-3.14.0/memcheck/tests/leak-cycle.c:13:11: warning: no previous prototype for 'mk' [-Wmissing-prototypes]
struct n *mk(struct n *l, struct n *r)
^~
../../../valgrind-3.14.0/memcheck/tests/leak-cycle.c:22:18: warning: function declaration isn't a prototype [-Wstrict-prototypes]
static struct n *mkcycle()
^~~~~~~
../../../valgrind-3.14.0/memcheck/tests/leak-cycle.c:35:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o leak-cycle leak-cycle.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o leak-delta.o ../../../valgrind-3.14.0/memcheck/tests/leak-delta.c
../../../valgrind-3.14.0/memcheck/tests/leak-delta.c:9:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
static void breakme() {};
^~~~~~~
../../../valgrind-3.14.0/memcheck/tests/leak-delta.c:10:6: warning: no previous prototype for 'f' [-Wmissing-prototypes]
void f(void)
^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o leak-delta leak-delta.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o leak-pool.o ../../../valgrind-3.14.0/memcheck/tests/leak-pool.c
../../../valgrind-3.14.0/memcheck/tests/leak-pool.c:23:1: warning: no previous prototype for 'allocate_from_pool' [-Wmissing-prototypes]
allocate_from_pool(struct pool *p, size_t n)
^~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/leak-pool.c:33:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
allocate_pool()
^~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/leak-pool.c:53:6: warning: no previous prototype for 'set_flags' [-Wmissing-prototypes]
void set_flags ( int n )
^~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o leak-pool leak-pool.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o leak-autofreepool.o ../../../valgrind-3.14.0/memcheck/tests/leak-autofreepool.c
../../../valgrind-3.14.0/memcheck/tests/leak-autofreepool.c:65:6: warning: no previous prototype for 'create_meta_pool' [-Wmissing-prototypes]
void create_meta_pool (void)
^~~~~~~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o leak-autofreepool leak-autofreepool.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o leak-tree.o ../../../valgrind-3.14.0/memcheck/tests/leak-tree.c
../../../valgrind-3.14.0/memcheck/tests/leak-tree.c:26:7: warning: no previous prototype for 'mk' [-Wmissing-prototypes]
Node* mk(void)
^~
../../../valgrind-3.14.0/memcheck/tests/leak-tree.c:37:6: warning: no previous prototype for 'f' [-Wmissing-prototypes]
void f(void)
^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o leak-tree leak-tree.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o leak-segv-jmp.o ../../../valgrind-3.14.0/memcheck/tests/leak-segv-jmp.c
../../../valgrind-3.14.0/memcheck/tests/leak-segv-jmp.c:217:7: warning: no previous prototype for 'do_syscall_WRK' [-Wmissing-prototypes]
UWord do_syscall_WRK (UWord syscall_no,
^~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/leak-segv-jmp.c:261:6: warning: no previous prototype for 'f' [-Wmissing-prototypes]
void f(void)
^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o leak-segv-jmp leak-segv-jmp.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o long-supps.o ../../../valgrind-3.14.0/memcheck/tests/long-supps.c
../../../valgrind-3.14.0/memcheck/tests/long-supps.c:8:1: warning: no previous prototype for 'f1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' [-Wmissing-prototypes]
f1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/long-supps.c:8:1: note: in definition of macro 'F1000'
f1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o long-supps long-supps.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mallinfo.o ../../../valgrind-3.14.0/memcheck/tests/mallinfo.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mallinfo mallinfo.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o malloc_free_fill.o ../../../valgrind-3.14.0/memcheck/tests/malloc_free_fill.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o malloc_free_fill malloc_free_fill.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o malloc_usable.o ../../../valgrind-3.14.0/memcheck/tests/malloc_usable.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o malloc_usable malloc_usable.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o malloc1.o ../../../valgrind-3.14.0/memcheck/tests/malloc1.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o malloc1 malloc1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o malloc2.o ../../../valgrind-3.14.0/memcheck/tests/malloc2.c
../../../valgrind-3.14.0/memcheck/tests/malloc2.c:13:10: warning: no previous prototype for 'myrandom' [-Wmissing-prototypes]
unsigned myrandom(void)
^~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o malloc2 malloc2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o malloc3.o ../../../valgrind-3.14.0/memcheck/tests/malloc3.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o malloc3 malloc3.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o manuel1-manuel1.o `test -f 'manuel1.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`manuel1.c
../../../valgrind-3.14.0/memcheck/tests/manuel1.c:3:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main ()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o manuel1 manuel1-manuel1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o manuel2.o ../../../valgrind-3.14.0/memcheck/tests/manuel2.c
../../../valgrind-3.14.0/memcheck/tests/manuel2.c:4:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main ()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o manuel2 manuel2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o manuel3.o ../../../valgrind-3.14.0/memcheck/tests/manuel3.c
../../../valgrind-3.14.0/memcheck/tests/manuel3.c:6:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main ()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o manuel3 manuel3.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o match-overrun.o ../../../valgrind-3.14.0/memcheck/tests/match-overrun.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o match-overrun match-overrun.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o memalign_test.o ../../../valgrind-3.14.0/memcheck/tests/memalign_test.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o memalign_test memalign_test.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o memalign2-memalign2.o `test -f 'memalign2.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`memalign2.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o memalign2 memalign2-memalign2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -fno-builtin-memcmp -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o memcmptest-memcmptest.o `test -f 'memcmptest.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`memcmptest.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -fno-builtin-memcmp -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o memcmptest memcmptest-memcmptest.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mempool.o ../../../valgrind-3.14.0/memcheck/tests/mempool.c
../../../valgrind-3.14.0/memcheck/tests/mempool.c:32:7: warning: function declaration isn't a prototype [-Wstrict-prototypes]
pool *make_pool()
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/mempool.c:53:6: warning: no previous prototype for 'push' [-Wmissing-prototypes]
void push(pool *p)
^~~~
../../../valgrind-3.14.0/memcheck/tests/mempool.c:70:6: warning: no previous prototype for 'pop' [-Wmissing-prototypes]
void pop(pool *p)
^~~
../../../valgrind-3.14.0/memcheck/tests/mempool.c:83:6: warning: no previous prototype for 'destroy_pool' [-Wmissing-prototypes]
void destroy_pool(pool *p)
^~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/mempool.c:99:7: warning: no previous prototype for 'allocate' [-Wmissing-prototypes]
char *allocate(pool *p, int size)
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/mempool.c:113:6: warning: no previous prototype for 'test' [-Wmissing-prototypes]
void test(void)
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mempool mempool.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mempool2.o ../../../valgrind-3.14.0/memcheck/tests/mempool2.c
../../../valgrind-3.14.0/memcheck/tests/mempool2.c:35:7: warning: no previous prototype for 'make_pool' [-Wmissing-prototypes]
pool *make_pool( int use_mmap )
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/mempool2.c:56:6: warning: no previous prototype for 'push' [-Wmissing-prototypes]
void push(pool *p, int use_mmap )
^~~~
../../../valgrind-3.14.0/memcheck/tests/mempool2.c:73:6: warning: no previous prototype for 'pop' [-Wmissing-prototypes]
void pop(pool *p, int use_mmap)
^~~
../../../valgrind-3.14.0/memcheck/tests/mempool2.c:86:6: warning: no previous prototype for 'destroy_pool' [-Wmissing-prototypes]
void destroy_pool(pool *p, int use_mmap)
^~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/mempool2.c:102:7: warning: no previous prototype for 'allocate' [-Wmissing-prototypes]
char *allocate(pool *p, int size)
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/mempool2.c:116:6: warning: no previous prototype for 'test' [-Wmissing-prototypes]
void test(void)
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mempool2 mempool2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mmaptest.o ../../../valgrind-3.14.0/memcheck/tests/mmaptest.c
../../../valgrind-3.14.0/memcheck/tests/mmaptest.c:7:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mmaptest mmaptest.o
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o mismatches-mismatches.o `test -f 'mismatches.cpp' || echo '../../../valgrind-3.14.0/memcheck/tests/'`mismatches.cpp
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o mismatches mismatches-mismatches.o
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o new_override.o ../../../valgrind-3.14.0/memcheck/tests/new_override.cpp
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o new_override new_override.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o metadata.o ../../../valgrind-3.14.0/memcheck/tests/metadata.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o metadata metadata.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o nanoleak_supp.o ../../../valgrind-3.14.0/memcheck/tests/nanoleak_supp.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o nanoleak_supp nanoleak_supp.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o nanoleak2.o ../../../valgrind-3.14.0/memcheck/tests/nanoleak2.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o nanoleak2 nanoleak2.o
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o new_nothrow.o ../../../valgrind-3.14.0/memcheck/tests/new_nothrow.cpp
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o new_nothrow new_nothrow.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o noisy_child.o ../../../valgrind-3.14.0/memcheck/tests/noisy_child.c
../../../valgrind-3.14.0/memcheck/tests/noisy_child.c:7:6: warning: no previous prototype for 'do_child_badness' [-Wmissing-prototypes]
void do_child_badness ( char* p )
^~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/noisy_child.c:13:6: warning: no previous prototype for 'do_parent_badness' [-Wmissing-prototypes]
void do_parent_badness ( char* p )
^~~~~~~~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o noisy_child noisy_child.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o null_socket.o ../../../valgrind-3.14.0/memcheck/tests/null_socket.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o null_socket null_socket.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o origin1_yes-origin1-yes.o `test -f 'origin1-yes.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`origin1-yes.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o origin1-yes origin1_yes-origin1-yes.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o origin2_not_quite-origin2-not-quite.o `test -f 'origin2-not-quite.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`origin2-not-quite.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o origin2-not-quite origin2_not_quite-origin2-not-quite.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o origin3_no-origin3-no.o `test -f 'origin3-no.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`origin3-no.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o origin3-no origin3_no-origin3-no.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o origin4_many-origin4-many.o `test -f 'origin4-many.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`origin4-many.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o origin4-many origin4_many-origin4-many.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -Wno-inline -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o origin5_bz2-origin5-bz2.o `test -f 'origin5-bz2.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`origin5-bz2.c
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:961:7: warning: no previous prototype for 'my_strcat' [-Wmissing-prototypes]
char* my_strcat ( char* dest, const char* src )
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:1003:6: warning: no previous prototype for 'vex_streq' [-Wmissing-prototypes]
Bool vex_streq ( const HChar* s1, const HChar* s2 )
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c: In function 'myvprintf_int64':
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:1079:20: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
HChar *digits = "0123456789ABCDEF";
^~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c: In function 'vprintf_wrk':
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:1233:39: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
if (str == (char*) 0) str = "(null)";
^
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c: In function 'BZ2_blockSort':
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:3091:18: warning: cast increases required alignment of target type [-Wcast-align]
quadrant = (UInt16*)(&(block[i]));
^
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c: At top level:
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:4443:6: warning: no previous prototype for 'BZ2_bz__AssertH__fail' [-Wmissing-prototypes]
void BZ2_bz__AssertH__fail ( int errcode )
^~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:5980:6: warning: no previous prototype for 'flip_bit' [-Wmissing-prototypes]
void flip_bit ( int bit )
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:5990:6: warning: no previous prototype for 'set_inbuf' [-Wmissing-prototypes]
void set_inbuf ( void )
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6439:8: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
"OK"
^~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6440:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"SEQUENCE_ERROR"
^~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6441:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"PARAM_ERROR"
^~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6442:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"MEM_ERROR"
^~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6443:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"DATA_ERROR"
^~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6444:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"DATA_ERROR_MAGIC"
^~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6445:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"IO_ERROR"
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6446:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"UNEXPECTED_EOF"
^~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6447:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"OUTBUFF_FULL"
^~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6448:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"CONFIG_ERROR"
^~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6449:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"???" /* for future */
^~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6450:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"???" /* for future */
^~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6451:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"???" /* for future */
^~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6452:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"???" /* for future */
^~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6453:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"???" /* for future */
^~~~~
../../../valgrind-3.14.0/memcheck/tests/origin5-bz2.c:6454:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"???" /* for future */
^~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -Wno-inline -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o origin5-bz2 origin5_bz2-origin5-bz2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o origin6_fp-origin6-fp.o `test -f 'origin6-fp.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`origin6-fp.c
../../../valgrind-3.14.0/memcheck/tests/origin6-fp.c:21:10: warning: no previous prototype for 'alloc_square_array' [-Wmissing-prototypes]
double** alloc_square_array ( int nArr )
^~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin6-fp.c:35:10: warning: no previous prototype for 'do3x3smooth' [-Wmissing-prototypes]
double** do3x3smooth ( double** arr, int nArr )
^~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/origin6-fp.c:53:8: warning: no previous prototype for 'sum' [-Wmissing-prototypes]
double sum ( double** arr, int nArr )
^~~
../../../valgrind-3.14.0/memcheck/tests/origin6-fp.c:66:6: warning: no previous prototype for 'setup_arr' [-Wmissing-prototypes]
void setup_arr ( /*OUT*/double** arr, int nArr )
^~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o origin6-fp origin6_fp-origin6-fp.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -fno-builtin-memcpy -fno-builtin-strcpy -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o overlap-overlap.o `test -f 'overlap.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`overlap.c
../../../valgrind-3.14.0/memcheck/tests/overlap.c:6:6: warning: no previous prototype for 'reset_b' [-Wmissing-prototypes]
void reset_b(void)
^~~~~~~
../../../valgrind-3.14.0/memcheck/tests/overlap.c:15:6: warning: no previous prototype for 'reset_b2' [-Wmissing-prototypes]
void reset_b2(void)
^~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -fno-builtin-memcpy -fno-builtin-strcpy -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o overlap overlap-overlap.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o partiallydefinedeq.o ../../../valgrind-3.14.0/memcheck/tests/partiallydefinedeq.c
../../../valgrind-3.14.0/memcheck/tests/partiallydefinedeq.c:12:6: warning: no previous prototype for 'foo' [-Wmissing-prototypes]
void foo ( int* p1, int* p2, unsigned int * hack )
^~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o partiallydefinedeq partiallydefinedeq.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o partial_load.o ../../../valgrind-3.14.0/memcheck/tests/partial_load.c
../../../valgrind-3.14.0/memcheck/tests/partial_load.c: In function 'main':
../../../valgrind-3.14.0/memcheck/tests/partial_load.c:16:8: warning: cast increases required alignment of target type [-Wcast-align]
w = *(long*)p;
^
../../../valgrind-3.14.0/memcheck/tests/partial_load.c:23:9: warning: cast increases required alignment of target type [-Wcast-align]
w += *(long*)p;
^
../../../valgrind-3.14.0/memcheck/tests/partial_load.c:30:17: warning: cast increases required alignment of target type [-Wcast-align]
w += (long)( *(short*)p );
^
../../../valgrind-3.14.0/memcheck/tests/partial_load.c:37:9: warning: cast increases required alignment of target type [-Wcast-align]
w += *(long*)p;
^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o partial_load partial_load.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pdb-realloc.o ../../../valgrind-3.14.0/memcheck/tests/pdb-realloc.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pdb-realloc pdb-realloc.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pdb-realloc2.o ../../../valgrind-3.14.0/memcheck/tests/pdb-realloc2.c
../../../valgrind-3.14.0/memcheck/tests/pdb-realloc2.c:31:6: warning: no previous prototype for 'do_test' [-Wmissing-prototypes]
void do_test ( int size )
^~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pdb-realloc2 pdb-realloc2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pipe.o ../../../valgrind-3.14.0/memcheck/tests/pipe.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pipe pipe.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pointer-trace.o ../../../valgrind-3.14.0/memcheck/tests/pointer-trace.c
../../../valgrind-3.14.0/memcheck/tests/pointer-trace.c:17:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pointer-trace pointer-trace.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o post-syscall.o ../../../valgrind-3.14.0/memcheck/tests/post-syscall.c
../../../valgrind-3.14.0/memcheck/tests/post-syscall.c:18:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o post-syscall post-syscall.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o realloc1.o ../../../valgrind-3.14.0/memcheck/tests/realloc1.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o realloc1 realloc1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o realloc2.o ../../../valgrind-3.14.0/memcheck/tests/realloc2.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o realloc2 realloc2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o realloc3.o ../../../valgrind-3.14.0/memcheck/tests/realloc3.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o realloc3 realloc3.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o recursive-merge.o ../../../valgrind-3.14.0/memcheck/tests/recursive-merge.c
../../../valgrind-3.14.0/memcheck/tests/recursive-merge.c:14:6: warning: no previous prototype for 'stacktrace' [-Wmissing-prototypes]
void stacktrace(char*last, char* callsequence)
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/recursive-merge.c:36:6: warning: no previous prototype for 'doit' [-Wmissing-prototypes]
void doit (int argc, char**argv)
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o recursive-merge recursive-merge.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o resvn_stack-resvn_stack.o `test -f 'resvn_stack.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`resvn_stack.c
../../../valgrind-3.14.0/memcheck/tests/resvn_stack.c:3:32: warning: no previous prototype for 'big' [-Wmissing-prototypes]
__attribute__((noinline)) void big(void)
^~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o resvn_stack resvn_stack-resvn_stack.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sbfragment.o ../../../valgrind-3.14.0/memcheck/tests/sbfragment.c
../../../valgrind-3.14.0/memcheck/tests/sbfragment.c:11:6: warning: no previous prototype for 'stats' [-Wmissing-prototypes]
void stats(char *msg)
^~~~~
../../../valgrind-3.14.0/memcheck/tests/sbfragment.c: In function 'main':
../../../valgrind-3.14.0/memcheck/tests/sbfragment.c:98:13: warning: passing argument 1 of 'stats' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
stats ("before freeing last block");
^~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sbfragment.c:11:18: note: expected 'char *' but argument is of type 'const char *'
void stats(char *msg)
~~~~~~^~~
../../../valgrind-3.14.0/memcheck/tests/sbfragment.c:101:13: warning: passing argument 1 of 'stats' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
stats ("after freeing last block");
^~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sbfragment.c:11:18: note: expected 'char *' but argument is of type 'const char *'
void stats(char *msg)
~~~~~~^~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sbfragment sbfragment.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sendmsg-sendmsg.o `test -f 'sendmsg.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`sendmsg.c
../../../valgrind-3.14.0/memcheck/tests/sendmsg.c: In function 'main':
../../../valgrind-3.14.0/memcheck/tests/sendmsg.c:37:19: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
iov[0].iov_base = "one";
^
../../../valgrind-3.14.0/memcheck/tests/sendmsg.c:39:19: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
iov[1].iov_base = "two";
^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sendmsg sendmsg-sendmsg.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sh-mem.o ../../../valgrind-3.14.0/memcheck/tests/sh-mem.c
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:38:4: warning: no previous prototype for 'build' [-Wmissing-prototypes]
U8 build(int size, U1 byte)
^~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:68:6: warning: no previous prototype for 'check_all' [-Wmissing-prototypes]
void check_all(U4 x, U4 y, U1 expected_byte, U1 expected_byte_alt,
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c: In function 'main':
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:195:20: warning: passing argument 5 of 'check_all' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
"STOREVn", h); \
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:210:4: note: in expansion of macro 'DO'
DO(1, U1, U1, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:69:34: note: expected 'char *' but argument is of type 'const char *'
char* str, int offset)
~~~~~~^~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:201:66: warning: passing argument 5 of 'check_all' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
check_all(h, n-NNN+h, expected_byte, expected_byte_alt, "LOADVn", h); \
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:210:4: note: in expansion of macro 'DO'
DO(1, U1, U1, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:69:34: note: expected 'char *' but argument is of type 'const char *'
char* str, int offset)
~~~~~~^~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:145:19: warning: cast increases required alignment of target type [-Wcast-align]
Ty* aNb = (Ty*)(((U1*)aN) + h); /* set offset from a[] */ \
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:211:4: note: in expansion of macro 'DO'
DO(2, U2, U2, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:146:19: warning: cast increases required alignment of target type [-Wcast-align]
Ty* bNb = (Ty*)(((U1*)bN) + h); /* set offset from b[] */ \
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:211:4: note: in expansion of macro 'DO'
DO(2, U2, U2, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:195:20: warning: passing argument 5 of 'check_all' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
"STOREVn", h); \
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:211:4: note: in expansion of macro 'DO'
DO(2, U2, U2, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:69:34: note: expected 'char *' but argument is of type 'const char *'
char* str, int offset)
~~~~~~^~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:201:66: warning: passing argument 5 of 'check_all' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
check_all(h, n-NNN+h, expected_byte, expected_byte_alt, "LOADVn", h); \
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:211:4: note: in expansion of macro 'DO'
DO(2, U2, U2, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:69:34: note: expected 'char *' but argument is of type 'const char *'
char* str, int offset)
~~~~~~^~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:145:19: warning: cast increases required alignment of target type [-Wcast-align]
Ty* aNb = (Ty*)(((U1*)aN) + h); /* set offset from a[] */ \
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:212:4: note: in expansion of macro 'DO'
DO(4, U4, U4, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:146:19: warning: cast increases required alignment of target type [-Wcast-align]
Ty* bNb = (Ty*)(((U1*)bN) + h); /* set offset from b[] */ \
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:212:4: note: in expansion of macro 'DO'
DO(4, U4, U4, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:195:20: warning: passing argument 5 of 'check_all' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
"STOREVn", h); \
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:212:4: note: in expansion of macro 'DO'
DO(4, U4, U4, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:69:34: note: expected 'char *' but argument is of type 'const char *'
char* str, int offset)
~~~~~~^~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:201:66: warning: passing argument 5 of 'check_all' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
check_all(h, n-NNN+h, expected_byte, expected_byte_alt, "LOADVn", h); \
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:212:4: note: in expansion of macro 'DO'
DO(4, U4, U4, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:69:34: note: expected 'char *' but argument is of type 'const char *'
char* str, int offset)
~~~~~~^~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:145:19: warning: cast increases required alignment of target type [-Wcast-align]
Ty* aNb = (Ty*)(((U1*)aN) + h); /* set offset from a[] */ \
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:213:4: note: in expansion of macro 'DO'
DO(4, F4, U4, /*isF4*/1);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:146:19: warning: cast increases required alignment of target type [-Wcast-align]
Ty* bNb = (Ty*)(((U1*)bN) + h); /* set offset from b[] */ \
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:213:4: note: in expansion of macro 'DO'
DO(4, F4, U4, /*isF4*/1);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:195:20: warning: passing argument 5 of 'check_all' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
"STOREVn", h); \
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:213:4: note: in expansion of macro 'DO'
DO(4, F4, U4, /*isF4*/1);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:69:34: note: expected 'char *' but argument is of type 'const char *'
char* str, int offset)
~~~~~~^~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:201:66: warning: passing argument 5 of 'check_all' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
check_all(h, n-NNN+h, expected_byte, expected_byte_alt, "LOADVn", h); \
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:213:4: note: in expansion of macro 'DO'
DO(4, F4, U4, /*isF4*/1);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:69:34: note: expected 'char *' but argument is of type 'const char *'
char* str, int offset)
~~~~~~^~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:145:19: warning: cast increases required alignment of target type [-Wcast-align]
Ty* aNb = (Ty*)(((U1*)aN) + h); /* set offset from a[] */ \
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:214:4: note: in expansion of macro 'DO'
DO(8, U8, U8, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:146:19: warning: cast increases required alignment of target type [-Wcast-align]
Ty* bNb = (Ty*)(((U1*)bN) + h); /* set offset from b[] */ \
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:214:4: note: in expansion of macro 'DO'
DO(8, U8, U8, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:195:20: warning: passing argument 5 of 'check_all' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
"STOREVn", h); \
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:214:4: note: in expansion of macro 'DO'
DO(8, U8, U8, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:69:34: note: expected 'char *' but argument is of type 'const char *'
char* str, int offset)
~~~~~~^~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:201:66: warning: passing argument 5 of 'check_all' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
check_all(h, n-NNN+h, expected_byte, expected_byte_alt, "LOADVn", h); \
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:214:4: note: in expansion of macro 'DO'
DO(8, U8, U8, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:69:34: note: expected 'char *' but argument is of type 'const char *'
char* str, int offset)
~~~~~~^~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:145:19: warning: cast increases required alignment of target type [-Wcast-align]
Ty* aNb = (Ty*)(((U1*)aN) + h); /* set offset from a[] */ \
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:215:4: note: in expansion of macro 'DO'
DO(8, F8, U8, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:146:19: warning: cast increases required alignment of target type [-Wcast-align]
Ty* bNb = (Ty*)(((U1*)bN) + h); /* set offset from b[] */ \
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:215:4: note: in expansion of macro 'DO'
DO(8, F8, U8, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:195:20: warning: passing argument 5 of 'check_all' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
"STOREVn", h); \
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:215:4: note: in expansion of macro 'DO'
DO(8, F8, U8, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:69:34: note: expected 'char *' but argument is of type 'const char *'
char* str, int offset)
~~~~~~^~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:201:66: warning: passing argument 5 of 'check_all' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
check_all(h, n-NNN+h, expected_byte, expected_byte_alt, "LOADVn", h); \
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:215:4: note: in expansion of macro 'DO'
DO(8, F8, U8, /*isF4*/0);
^~
../../../valgrind-3.14.0/memcheck/tests/sh-mem.c:69:34: note: expected 'char *' but argument is of type 'const char *'
char* str, int offset)
~~~~~~^~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sh-mem sh-mem.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sh-mem-random.o ../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:37:4: warning: no previous prototype for 'build' [-Wmissing-prototypes]
U8 build(int size, U1 byte)
^~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:63:4: warning: no previous prototype for 'make_defined' [-Wmissing-prototypes]
U1 make_defined ( U1 x )
^~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:70:6: warning: no previous prototype for 'check' [-Wmissing-prototypes]
void check(U1* arr, int n, char* who)
^~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:112:6: warning: no previous prototype for 'do_test_at' [-Wmissing-prototypes]
void do_test_at ( U1* arr )
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c: In function 'do_test_at':
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:126:24: warning: passing argument 3 of 'check' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
check(arr, N_BYTES, "after initialisation");
^~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:70:34: note: expected 'char *' but argument is of type 'const char *'
void check(U1* arr, int n, char* who)
~~~~~~^~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:145:14: warning: cast increases required alignment of target type [-Wcast-align]
*(U2*)(arr+dst) = *(U2*)(arr+src);
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:145:32: warning: cast increases required alignment of target type [-Wcast-align]
*(U2*)(arr+dst) = *(U2*)(arr+src);
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:152:14: warning: cast increases required alignment of target type [-Wcast-align]
*(U4*)(arr+dst) = *(U4*)(arr+src);
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:152:32: warning: cast increases required alignment of target type [-Wcast-align]
*(U4*)(arr+dst) = *(U4*)(arr+src);
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:159:14: warning: cast increases required alignment of target type [-Wcast-align]
*(U8*)(arr+dst) = *(U8*)(arr+src);
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:159:32: warning: cast increases required alignment of target type [-Wcast-align]
*(U8*)(arr+dst) = *(U8*)(arr+src);
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:208:14: warning: cast increases required alignment of target type [-Wcast-align]
*(F8*)(arr+dst) = *(F8*)(arr+src);
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:208:32: warning: cast increases required alignment of target type [-Wcast-align]
*(F8*)(arr+dst) = *(F8*)(arr+src);
^
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:220:24: warning: passing argument 3 of 'check' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
check(arr, N_BYTES, "final check");
^~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/sh-mem-random.c:70:34: note: expected 'char *' but argument is of type 'const char *'
void check(U1* arr, int n, char* who)
~~~~~~^~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sh-mem-random sh-mem-random.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sigaltstack.o ../../../valgrind-3.14.0/memcheck/tests/sigaltstack.c
../../../valgrind-3.14.0/memcheck/tests/sigaltstack.c:7:6: warning: no previous prototype for 'sig_handler' [-Wmissing-prototypes]
void sig_handler(int sig){
^~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sigaltstack sigaltstack.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o signal2.o ../../../valgrind-3.14.0/memcheck/tests/signal2.c
../../../valgrind-3.14.0/memcheck/tests/signal2.c:7:6: warning: no previous prototype for 'sig_hdlr' [-Wmissing-prototypes]
void sig_hdlr ( int signo ) {
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/signal2.c: In function 'main':
../../../valgrind-3.14.0/memcheck/tests/signal2.c:17:5: warning: cast increases required alignment of target type [-Wcast-align]
*(int*)badplace = 0;
^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o signal2 signal2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sigprocmask.o ../../../valgrind-3.14.0/memcheck/tests/sigprocmask.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sigprocmask sigprocmask.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o static_malloc.o ../../../valgrind-3.14.0/memcheck/tests/static_malloc.c
../../../valgrind-3.14.0/memcheck/tests/static_malloc.c:5:7: warning: no previous prototype for 'malloc' [-Wmissing-prototypes]
void* malloc(size_t i) {
^~~~~~
../../../valgrind-3.14.0/memcheck/tests/static_malloc.c:10:6: warning: no previous prototype for 'free' [-Wmissing-prototypes]
void free(void*ptr) {
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o static_malloc static_malloc.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sigkill.o ../../../valgrind-3.14.0/memcheck/tests/sigkill.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sigkill sigkill.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o strchr.o ../../../valgrind-3.14.0/memcheck/tests/strchr.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o strchr strchr.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-shadow -Wno-memset-transposed-args -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o str_tester-str_tester.o `test -f 'str_tester.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`str_tester.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-shadow -Wno-memset-transposed-args -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o str_tester str_tester-str_tester.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o supp_unknown-badjump.o `test -f 'badjump.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`badjump.c
../../../valgrind-3.14.0/memcheck/tests/badjump.c: In function 'main':
../../../valgrind-3.14.0/memcheck/tests/badjump.c:17:12: warning: cast increases required alignment of target type [-Wcast-align]
return ((int(*)(void)) p) ();
^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o supp_unknown supp_unknown-badjump.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o supp1-supp.o `test -f 'supp.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`supp.c
../../../valgrind-3.14.0/memcheck/tests/supp.c:4:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
main ()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o supp1 supp1-supp.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o supp2-supp.o `test -f 'supp.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`supp.c
../../../valgrind-3.14.0/memcheck/tests/supp.c:4:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
main ()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o supp2 supp2-supp.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o suppfree.o ../../../valgrind-3.14.0/memcheck/tests/suppfree.c
../../../valgrind-3.14.0/memcheck/tests/suppfree.c:4:6: warning: no previous prototype for 'ddd' [-Wmissing-prototypes]
void ddd ( char* x )
^~~
../../../valgrind-3.14.0/memcheck/tests/suppfree.c:10:6: warning: no previous prototype for 'ccc' [-Wmissing-prototypes]
void ccc (char* x)
^~~
../../../valgrind-3.14.0/memcheck/tests/suppfree.c:15:6: warning: no previous prototype for 'bbb' [-Wmissing-prototypes]
void bbb (char* x)
^~~
../../../valgrind-3.14.0/memcheck/tests/suppfree.c:20:6: warning: no previous prototype for 'aaa' [-Wmissing-prototypes]
void aaa (char* x)
^~~
../../../valgrind-3.14.0/memcheck/tests/suppfree.c:25:6: warning: no previous prototype for 'ok_to_suppress_double_free_from_this_fun' [-Wmissing-prototypes]
void ok_to_suppress_double_free_from_this_fun(char* y)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o suppfree suppfree.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o test-plo.o ../../../valgrind-3.14.0/memcheck/tests/test-plo.c
../../../valgrind-3.14.0/memcheck/tests/test-plo.c: In function 'aligned_strlen':
../../../valgrind-3.14.0/memcheck/tests/test-plo.c:29:18: warning: cast increases required alignment of target type [-Wcast-align]
ULong val = *(ULong*)s;
^
../../../valgrind-3.14.0/memcheck/tests/test-plo.c: At top level:
../../../valgrind-3.14.0/memcheck/tests/test-plo.c:39:32: warning: no previous prototype for 'foo' [-Wmissing-prototypes]
__attribute__((noinline)) void foo ( int x )
^~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o test-plo test-plo.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o trivialleak.o ../../../valgrind-3.14.0/memcheck/tests/trivialleak.c
../../../valgrind-3.14.0/memcheck/tests/trivialleak.c:3:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
static void test()
^~~~
../../../valgrind-3.14.0/memcheck/tests/trivialleak.c:10:7: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o trivialleak trivialleak.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o thread_alloca.o ../../../valgrind-3.14.0/memcheck/tests/thread_alloca.c
../../../valgrind-3.14.0/memcheck/tests/thread_alloca.c:18:1: warning: no previous prototype for 'nop' [-Wmissing-prototypes]
nop(void *nil)
^~~
../../../valgrind-3.14.0/memcheck/tests/thread_alloca.c:24:1: warning: no previous prototype for '__yell' [-Wmissing-prototypes]
__yell(void)
^~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o thread_alloca thread_alloca.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o undef_malloc_args.o ../../../valgrind-3.14.0/memcheck/tests/undef_malloc_args.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o undef_malloc_args undef_malloc_args.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o unit_libcbase.o ../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:45:6: warning: no previous prototype for 'test_VG_STREQ' [-Wmissing-prototypes]
void test_VG_STREQ(void)
^~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:62:6: warning: no previous prototype for 'test_VG_STREQN' [-Wmissing-prototypes]
void test_VG_STREQN(void)
^~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:88:6: warning: no previous prototype for 'test_VG_IS_XYZ_ALIGNED' [-Wmissing-prototypes]
void test_VG_IS_XYZ_ALIGNED(void)
^~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:194:6: warning: function declaration isn't a prototype [-Wstrict-prototypes]
void test_VG_ROUND_et_al()
^~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:287:6: warning: no previous prototype for 'test_isspace' [-Wmissing-prototypes]
void test_isspace(void)
^~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:296:6: warning: no previous prototype for 'test_isdigit' [-Wmissing-prototypes]
void test_isdigit(void)
^~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:306:6: warning: function declaration isn't a prototype [-Wstrict-prototypes]
void test_is_dec_digit()
^~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:314:6: warning: function declaration isn't a prototype [-Wstrict-prototypes]
void test_is_hex_digit()
^~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:326:6: warning: no previous prototype for 'test_strtoll_and_strtod' [-Wmissing-prototypes]
void test_strtoll_and_strtod(void)
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c: In function 'test_strtoll_and_strtod':
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:340:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "", .res = 0, .endptr_val = '\0' },
^~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:341:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = " \n\t", .res = 0, .endptr_val = ' ' },
^~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:342:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "one", .res = 0, .endptr_val = 'o' },
^~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:343:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "\ntwo", .res = 0, .endptr_val = '\n' },
^~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:347:20: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "0", .res = 0, .endptr_val = '\0' },
^~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:348:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "+0", .res = 0, .endptr_val = '\0' },
^~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:349:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "-0", .res = 0, .endptr_val = '\0' },
^~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:350:20: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "1", .res = 1, .endptr_val = '\0' },
^~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:351:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "+1", .res = 1, .endptr_val = '\0' },
^~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:352:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "-1", .res = -1, .endptr_val = '\0' },
^~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:353:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "12", .res = 12, .endptr_val = '\0' },
^~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:354:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "-567", .res = -567, .endptr_val = '\0' },
^~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:355:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "1234567", .res = 1234567, .endptr_val = '\0' },
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:356:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "007", .res = 7, .endptr_val = '\0' },
^~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:357:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = " +42", .res = 42, .endptr_val = '\0' },
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:358:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "\n\t\r\v -56", .res = -56, .endptr_val = '\0' },
^~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:359:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "123xyz", .res = 123, .endptr_val = 'x' },
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:360:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = " -123abc", .res = -123, .endptr_val = 'a' },
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:363:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "+ 1", .res = 0, .endptr_val = '+' },
^~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:364:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "-\n1", .res = 0, .endptr_val = '-' },
^~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:386:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "", .res = 0, .endptr_val = '\0' },
^~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:387:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = " \n\t", .res = 0, .endptr_val = ' ' },
^~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:388:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "one", .res = 0, .endptr_val = 'o' },
^~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:389:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "\ntwo", .res = 0, .endptr_val = '\n' },
^~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:394:21: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "0", .res = 0, .endptr_val = '\0' },
^~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:395:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "0x0", .res = 0, .endptr_val = '\0' },
^~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:396:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "0X0", .res = 0, .endptr_val = '\0' },
^~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:397:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "0x", .res = 0, .endptr_val = 'x' },
^~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:398:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "0Xg", .res = 0, .endptr_val = 'X' },
^~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:399:21: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "0", .res = 0, .endptr_val = '\0' },
^~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:400:20: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "+0", .res = 0, .endptr_val = '\0' },
^~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:401:20: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "-0", .res = 0, .endptr_val = '\0' },
^~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:402:21: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "1", .res = 1, .endptr_val = '\0' },
^~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:403:20: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "+1", .res = 1, .endptr_val = '\0' },
^~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:404:20: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "-1", .res = -1, .endptr_val = '\0' },
^~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:405:20: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "1a", .res = 26, .endptr_val = '\0' },
^~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:406:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "-5F7", .res = -1527, .endptr_val = '\0' },
^~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:407:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "0x1234567", .res = 19088743, .endptr_val = '\0' },
^~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:408:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "007", .res = 7, .endptr_val = '\0' },
^~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:409:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "0X00ABCD", .res = 43981, .endptr_val = '\0' },
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:410:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = " +AbC", .res = 2748, .endptr_val = '\0' },
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:411:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = " -0xAbC", .res = -2748, .endptr_val = '\0' },
^~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:412:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = " -0xxx", .res = 0, .endptr_val = 'x' },
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:413:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "\n\t\r\v -56", .res = -86, .endptr_val = '\0' },
^~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:414:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "123xyz", .res = 291, .endptr_val = 'x' },
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:415:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = " -123defghi", .res = -1195503, .endptr_val = 'g' },
^~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:418:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "+ 1", .res = 0, .endptr_val = '+' },
^~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:419:19: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
{ .str = "-\n0x1", .res = 0, .endptr_val = '-' },
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c: At top level:
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:440:6: warning: no previous prototype for 'test_log2' [-Wmissing-prototypes]
void test_log2(void)
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_libcbase.c:479:6: warning: no previous prototype for 'test_random' [-Wmissing-prototypes]
void test_random(void)
^~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o unit_libcbase unit_libcbase.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o unit_oset.o ../../../valgrind-3.14.0/memcheck/tests/unit_oset.c
In file included from ../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:40:
../../../valgrind-3.14.0/coregrind/m_poolalloc.c: In function 'pal_add_new_pool':
../../../valgrind-3.14.0/coregrind/m_poolalloc.c:104:22: warning: cast increases required alignment of target type [-Wcast-align]
UWord* elem = (UWord*)elemC;
^
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c: In function 'wordToStr':
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:76:25: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
sprintf(buf, "%ld", *(Word*)p);
^
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c: At top level:
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:86:6: warning: no previous prototype for 'example1singleset' [-Wmissing-prototypes]
void example1singleset(OSet* oset, char *descr)
^~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:262:6: warning: no previous prototype for 'example1' [-Wmissing-prototypes]
void example1(void)
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c: In function 'example1':
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:273:28: warning: passing argument 2 of 'example1singleset' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
example1singleset(oset, "single oset, no pool allocator");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:86:42: note: expected 'char *' but argument is of type 'const char *'
void example1singleset(OSet* oset, char *descr)
~~~~~~^~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:284:28: warning: passing argument 2 of 'example1singleset' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
example1singleset(oset, "single oset, pool allocator");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:86:42: note: expected 'char *' but argument is of type 'const char *'
void example1singleset(OSet* oset, char *descr)
~~~~~~^~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:297:28: warning: passing argument 2 of 'example1singleset' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
example1singleset(oset, "oset, shared pool");
^~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:86:42: note: expected 'char *' but argument is of type 'const char *'
void example1singleset(OSet* oset, char *descr)
~~~~~~^~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:298:40: warning: passing argument 2 of 'example1singleset' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
example1singleset(oset_empty_clone, "cloned oset, shared pool");
^~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:86:42: note: expected 'char *' but argument is of type 'const char *'
void example1singleset(OSet* oset, char *descr)
~~~~~~^~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c: At top level:
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:306:6: warning: no previous prototype for 'example1b' [-Wmissing-prototypes]
void example1b(void)
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/unit_oset.c:464:6: warning: no previous prototype for 'example2' [-Wmissing-prototypes]
void example2(void)
^~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o unit_oset unit_oset.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o varinfo1-varinfo1.o `test -f 'varinfo1.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`varinfo1.c
../../../valgrind-3.14.0/memcheck/tests/varinfo1.c:21:6: warning: no previous prototype for 'croak' [-Wmissing-prototypes]
void croak ( void* aV )
^~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o varinfo1 varinfo1-varinfo1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -Wno-shadow -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o varinfo2-varinfo2.o `test -f 'varinfo2.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`varinfo2.c
../../../valgrind-3.14.0/memcheck/tests/varinfo2.c:21:6: warning: no previous prototype for 'croak' [-Wmissing-prototypes]
void croak ( void* aV )
^~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo2.c:35:6: warning: no previous prototype for 'foo' [-Wmissing-prototypes]
void foo ( void )
^~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -Wno-shadow -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o varinfo2 varinfo2-varinfo2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o varinfo3-varinfo3.o `test -f 'varinfo3.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`varinfo3.c
../../../valgrind-3.14.0/memcheck/tests/varinfo3.c:21:6: warning: no previous prototype for 'croak' [-Wmissing-prototypes]
void croak ( void* aV )
^~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo3.c:40:6: warning: no previous prototype for 'bar' [-Wmissing-prototypes]
void bar ( char* p1, char* p2, char* p3, char* p4 )
^~~
../../../valgrind-3.14.0/memcheck/tests/varinfo3.c:48:6: warning: no previous prototype for 'foo' [-Wmissing-prototypes]
void foo ( void )
^~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o varinfo3 varinfo3-varinfo3.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o varinfo4-varinfo4.o `test -f 'varinfo4.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`varinfo4.c
../../../valgrind-3.14.0/memcheck/tests/varinfo4.c:21:6: warning: no previous prototype for 'croak' [-Wmissing-prototypes]
void croak ( void* aV )
^~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo4.c:43:5: warning: no previous prototype for 'blah' [-Wmissing-prototypes]
int blah ( int x, int y )
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o varinfo4 varinfo4-varinfo4.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o varinfo5-varinfo5.o `test -f 'varinfo5.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`varinfo5.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -fpic -O -Wno-shadow -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o varinfo5so_so-varinfo5so.o `test -f 'varinfo5so.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`varinfo5so.c
../../../valgrind-3.14.0/memcheck/tests/varinfo5so.c:22:6: warning: no previous prototype for 'croak' [-Wmissing-prototypes]
void croak ( void* aV )
^~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo5so.c:152:6: warning: no previous prototype for 'varinfo5_main' [-Wmissing-prototypes]
void varinfo5_main ( void )
^~~~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -fpic -O -Wno-shadow -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fpic -shared -Wl,-soname -Wl,varinfo5so.so -Wl,-O1 -Wl,--as-needed -o varinfo5so.so varinfo5so_so-varinfo5so.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-rpath,/usr/lib/valgrind/ptest/memcheck/tests -Wl,-O1 -Wl,--as-needed -o varinfo5 varinfo5-varinfo5.o varinfo5so.so
make[5]: 'varinfo5so.so' is up to date.
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o varinfo6-varinfo6.o `test -f 'varinfo6.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`varinfo6.c
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:27:6: warning: no previous prototype for 'croak' [-Wmissing-prototypes]
void croak ( void* aV )
^~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:999:7: warning: no previous prototype for 'my_strcat' [-Wmissing-prototypes]
char* my_strcat ( char* dest, const char* src )
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:1041:6: warning: no previous prototype for 'vex_streq' [-Wmissing-prototypes]
Bool vex_streq ( const HChar* s1, const HChar* s2 )
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c: In function 'myvprintf_int64':
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:1117:20: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
HChar *digits = "0123456789ABCDEF";
^~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c: In function 'vprintf_wrk':
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:1271:39: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
if (str == (char*) 0) str = "(null)";
^
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c: At top level:
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:2824:6: warning: no previous prototype for 'mainSort' [-Wmissing-prototypes]
void mainSort ( UInt32* ptr,
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c: In function 'BZ2_blockSort':
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:3129:18: warning: cast increases required alignment of target type [-Wcast-align]
quadrant = (UInt16*)(&(block[i]));
^
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c: At top level:
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:4481:6: warning: no previous prototype for 'BZ2_bz__AssertH__fail' [-Wmissing-prototypes]
void BZ2_bz__AssertH__fail ( int errcode )
^~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6017:6: warning: no previous prototype for 'flip_bit' [-Wmissing-prototypes]
void flip_bit ( int bit )
^~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6027:6: warning: no previous prototype for 'set_inbuf' [-Wmissing-prototypes]
void set_inbuf ( void )
^~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6476:8: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
"OK"
^~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6477:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"SEQUENCE_ERROR"
^~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6478:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"PARAM_ERROR"
^~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6479:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"MEM_ERROR"
^~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6480:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"DATA_ERROR"
^~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6481:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"DATA_ERROR_MAGIC"
^~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6482:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"IO_ERROR"
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6483:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"UNEXPECTED_EOF"
^~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6484:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"OUTBUFF_FULL"
^~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6485:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"CONFIG_ERROR"
^~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6486:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"???" /* for future */
^~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6487:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"???" /* for future */
^~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6488:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"???" /* for future */
^~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6489:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"???" /* for future */
^~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6490:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"???" /* for future */
^~~~~
../../../valgrind-3.14.0/memcheck/tests/varinfo6.c:6491:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
,"???" /* for future */
^~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o varinfo6 varinfo6-varinfo6.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O0 -g -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o varinforestrict-varinforestrict.o `test -f 'varinforestrict.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`varinforestrict.c
../../../valgrind-3.14.0/memcheck/tests/varinforestrict.c:18:6: warning: no previous prototype for 'croak' [-Wmissing-prototypes]
void croak (void *aV )
^~~~~
../../../valgrind-3.14.0/memcheck/tests/varinforestrict.c:31:1: warning: no previous prototype for 'bad_restrict_ptr' [-Wmissing-prototypes]
bad_restrict_ptr (void * restrict bad_ptr)
^~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/varinforestrict.c: In function 'bad_restrict_ptr':
../../../valgrind-3.14.0/memcheck/tests/varinforestrict.c:33:10: warning: cast discards 'restrict' qualifier from pointer target type [-Wcast-qual]
croak ((void *) &bad_ptr);
^
../../../valgrind-3.14.0/memcheck/tests/varinforestrict.c: At top level:
../../../valgrind-3.14.0/memcheck/tests/varinforestrict.c:37:1: warning: no previous prototype for 'cpy' [-Wmissing-prototypes]
cpy (char * restrict s1, const char * restrict s2, size_t n)
^~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O0 -g -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o varinforestrict varinforestrict-varinforestrict.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O2 -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o vcpu_fbench-vcpu_fbench.o `test -f 'vcpu_fbench.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`vcpu_fbench.c
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:315:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
" Marginal ray 47.09479120920 0.04178472683",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:316:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
" Paraxial ray 47.08372160249 0.04177864821",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:317:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
"Longitudinal spherical aberration: -0.01106960671",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:318:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
" (Maximum permissible): 0.05306749907",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:319:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
"Offense against sine condition (coma): 0.00008954761",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:320:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
" (Maximum permissible): 0.00250000000",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:321:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
"Axial chromatic aberration: 0.00448229032",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:322:9: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
" (Maximum permissible): 0.05306749907"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:383:8: warning: function declaration isn't a prototype [-Wstrict-prototypes]
double aint(x)
^~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:347:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
#define sin I_sin
^~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:401:15: note: in expansion of macro 'sin'
static double sin(x)
^~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:348:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
#define cos I_cos
^~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:440:15: note: in expansion of macro 'cos'
static double cos(x)
^~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:349:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
#define tan I_tan
^~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:451:15: note: in expansion of macro 'tan'
static double tan(x)
^~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:350:14: warning: function declaration isn't a prototype [-Wstrict-prototypes]
#define sqrt I_sqrt
^~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:460:8: note: in expansion of macro 'sqrt'
double sqrt(x)
^~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:351:14: warning: function declaration isn't a prototype [-Wstrict-prototypes]
#define atan I_atan
^~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:493:15: note: in expansion of macro 'atan'
static double atan(x)
^~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:352:15: warning: function declaration isn't a prototype [-Wstrict-prototypes]
#define atan2 I_atan2
^~~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:533:15: note: in expansion of macro 'atan2'
static double atan2(y, x)
^~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:353:14: warning: function declaration isn't a prototype [-Wstrict-prototypes]
#define asin I_asin
^~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:558:15: note: in expansion of macro 'asin'
static double asin(x)
^~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:612:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
static void transit_surface() {
^~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:677:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
static void trace_line(line, ray_h)
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/vcpu_fbench.c:704:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main(argc, argv)
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O2 -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o vcpu_fbench vcpu_fbench-vcpu_fbench.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O2 -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o vcpu_fnfns-vcpu_fnfns.o `test -f 'vcpu_fnfns.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`vcpu_fnfns.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O2 -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o vcpu_fnfns vcpu_fnfns-vcpu_fnfns.o -lm
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o wcs.o ../../../valgrind-3.14.0/memcheck/tests/wcs.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o wcs wcs.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -D_GNU_SOURCE -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o xml1-xml1.o `test -f 'xml1.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`xml1.c
../../../valgrind-3.14.0/memcheck/tests/xml1.c:6:5: warning: no previous prototype for 'frame3' [-Wmissing-prototypes]
int frame3 ( void )
^~~~~~
../../../valgrind-3.14.0/memcheck/tests/xml1.c:37:5: warning: no previous prototype for 'frame2' [-Wmissing-prototypes]
int frame2 ( void )
^~~~~~
../../../valgrind-3.14.0/memcheck/tests/xml1.c:42:5: warning: no previous prototype for 'frame1' [-Wmissing-prototypes]
int frame1 ( void )
^~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -D_GNU_SOURCE -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o xml1 xml1-xml1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o wrap1.o ../../../valgrind-3.14.0/memcheck/tests/wrap1.c
../../../valgrind-3.14.0/memcheck/tests/wrap1.c:10:6: warning: no previous prototype for 'actual' [-Wmissing-prototypes]
void actual ( void )
^~~~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap1.c:3:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_actual' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap1.c:18:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
void I_WRAP_SONAME_FNNAME_ZU(NONE,actual) ( void )
^~~~~~~~~~~~~~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o wrap1 wrap1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o wrap2.o ../../../valgrind-3.14.0/memcheck/tests/wrap2.c
../../../valgrind-3.14.0/memcheck/tests/wrap2.c:9:5: warning: no previous prototype for 'mul' [-Wmissing-prototypes]
int mul ( int x, int y ) { return x * y; }
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap2.c:11:5: warning: no previous prototype for 'fact' [-Wmissing-prototypes]
int fact ( int n )
^~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap2.c:3:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fact' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap2.c:16:5: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
int I_WRAP_SONAME_FNNAME_ZU(NONE,fact) ( int n )
^~~~~~~~~~~~~~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o wrap2 wrap2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o wrap3.o ../../../valgrind-3.14.0/memcheck/tests/wrap3.c
../../../valgrind-3.14.0/memcheck/tests/wrap3.c:13:5: warning: no previous prototype for 'mul' [-Wmissing-prototypes]
int mul ( int x, int y ) { return x * y; }
^~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap3.c:3:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fact1' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap3.c:25:5: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
int I_WRAP_SONAME_FNNAME_ZU(NONE,fact1) ( int n )
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fact2' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap3.c:36:5: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
int I_WRAP_SONAME_FNNAME_ZU(NONE,fact2) ( int n )
^~~~~~~~~~~~~~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o wrap3 wrap3.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o wrap4.o ../../../valgrind-3.14.0/memcheck/tests/wrap4.c
../../../valgrind-3.14.0/memcheck/tests/wrap4.c:17:5: warning: no previous prototype for 'mul' [-Wmissing-prototypes]
int mul ( int x, int y ) { return x * y; }
^~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap4.c:3:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fact1' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap4.c:29:5: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
int I_WRAP_SONAME_FNNAME_ZU(NONE,fact1) ( int n )
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fact2' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap4.c:41:5: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
int I_WRAP_SONAME_FNNAME_ZU(NONE,fact2) ( int n )
^~~~~~~~~~~~~~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o wrap4 wrap4.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o wrap5.o ../../../valgrind-3.14.0/memcheck/tests/wrap5.c
../../../valgrind-3.14.0/memcheck/tests/wrap5.c:20:6: warning: no previous prototype for 'addMoreLard' [-Wmissing-prototypes]
void addMoreLard ( void )
^~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap5.c:37:5: warning: no previous prototype for 'mul' [-Wmissing-prototypes]
int mul ( int x, int y ) { return x * y; }
^~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap5.c:4:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fact1' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap5.c:51:5: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
int I_WRAP_SONAME_FNNAME_ZU(NONE,fact1) ( int n )
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fact2' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap5.c:65:5: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
int I_WRAP_SONAME_FNNAME_ZU(NONE,fact2) ( int n )
^~~~~~~~~~~~~~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o wrap5 wrap5.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O2 -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o wrap6-wrap6.o `test -f 'wrap6.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`wrap6.c
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:120:5: warning: no previous prototype for 'one' [-Wmissing-prototypes]
int one ( void )
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:179:6: warning: no previous prototype for 'fn_0' [-Wmissing-prototypes]
UInt fn_0 ( void )
^~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap6.c:5:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fn_0' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:188:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_0) ( UInt a1 )
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:205:6: warning: no previous prototype for 'fn_1' [-Wmissing-prototypes]
UInt fn_1 ( UInt a1 )
^~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap6.c:5:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fn_1' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:215:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_1) ( UInt a1 )
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:232:6: warning: no previous prototype for 'fn_2' [-Wmissing-prototypes]
UInt fn_2 ( UInt a1, UInt a2 )
^~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap6.c:5:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fn_2' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:243:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_2) ( UInt a1, UInt a2 )
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:260:6: warning: no previous prototype for 'fn_3' [-Wmissing-prototypes]
UInt fn_3 ( UInt a1, UInt a2, UInt a3 )
^~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap6.c:5:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fn_3' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:272:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_3) ( UInt a1, UInt a2, UInt a3 )
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:289:6: warning: no previous prototype for 'fn_4' [-Wmissing-prototypes]
UInt fn_4 ( UInt a1, UInt a2, UInt a3, UInt a4 )
^~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap6.c:5:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fn_4' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:302:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_4)
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:319:6: warning: no previous prototype for 'fn_5' [-Wmissing-prototypes]
UInt fn_5 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5 )
^~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap6.c:5:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fn_5' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:333:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_5)
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:350:6: warning: no previous prototype for 'fn_6' [-Wmissing-prototypes]
UInt fn_6 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6 )
^~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap6.c:5:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fn_6' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:365:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_6)
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:382:6: warning: no previous prototype for 'fn_7' [-Wmissing-prototypes]
UInt fn_7 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
^~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap6.c:5:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fn_7' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:399:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_7)
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:418:6: warning: no previous prototype for 'fn_8' [-Wmissing-prototypes]
UInt fn_8 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
^~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap6.c:5:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fn_8' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:436:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_8)
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:455:6: warning: no previous prototype for 'fn_9' [-Wmissing-prototypes]
UInt fn_9 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
^~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap6.c:5:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fn_9' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:474:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_9)
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:493:6: warning: no previous prototype for 'fn_10' [-Wmissing-prototypes]
UInt fn_10 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
^~~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap6.c:5:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fn_10' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:513:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_10)
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:532:6: warning: no previous prototype for 'fn_11' [-Wmissing-prototypes]
UInt fn_11 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
^~~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap6.c:5:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fn_11' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:553:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_11)
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:572:6: warning: no previous prototype for 'fn_12' [-Wmissing-prototypes]
UInt fn_12 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
^~~~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap6.c:5:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fn_12' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap6.c:594:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_12)
^~~~~~~~~~~~~~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O2 -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o wrap6 wrap6-wrap6.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o wrap7.o ../../../valgrind-3.14.0/memcheck/tests/wrap7.c
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap7.c:3:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_wrap7soZdso_actual' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap7.c:14:6: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
void I_WRAP_SONAME_FNNAME_ZU(wrap7soZdso,actual) ( void )
^~~~~~~~~~~~~~~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -fpic -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o wrap7so_so-wrap7so.o `test -f 'wrap7so.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`wrap7so.c
../../../valgrind-3.14.0/memcheck/tests/wrap7so.c:6:6: warning: no previous prototype for 'actual' [-Wmissing-prototypes]
void actual ( void )
^~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -fpic -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fpic -shared -Wl,-soname -Wl,wrap7so.so -Wl,-O1 -Wl,--as-needed -o wrap7so.so wrap7so_so-wrap7so.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-rpath,/usr/lib/valgrind/ptest/memcheck/tests -Wl,-O1 -Wl,--as-needed -o wrap7 wrap7.o wrap7so.so
make[5]: 'wrap7so.so' is up to date.
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o wrap8.o ../../../valgrind-3.14.0/memcheck/tests/wrap8.c
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:27:6: warning: no previous prototype for 'addMoreLard' [-Wmissing-prototypes]
void addMoreLard ( void )
^~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:44:5: warning: no previous prototype for 'mul' [-Wmissing-prototypes]
int mul ( int x, int y ) { return x * y; }
^~~
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap8.c:4:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fact1' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:58:5: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
int I_WRAP_SONAME_FNNAME_ZU(NONE,fact1) ( int n )
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c: In function '_vgw00000ZU_NONE_fact1':
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:63:8: warning: passing argument 1 of 'pre' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
pre("wrapper1", n);
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:38:25: note: expected 'char *' but argument is of type 'const char *'
static void pre ( char* s, int n );
~~~~~~^
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:67:9: warning: passing argument 1 of 'post' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
post("wrapper1", n, r);
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:37:26: note: expected 'char *' but argument is of type 'const char *'
static void post ( char* s, int n, int r );
~~~~~~^
In file included from ../../../valgrind-3.14.0/memcheck/tests/wrap8.c:4:
../../../valgrind-3.14.0/memcheck/tests/wrap8.c: At top level:
../../../valgrind-3.14.0/include/valgrind.h:1087:15: warning: no previous prototype for '_vgw00000ZU_NONE_fact2' [-Wmissing-prototypes]
VG_CONCAT4(_vgw00000ZU_,soname,_,fnname)
^~~~~~~~~~~~
../../../valgrind-3.14.0/include/valgrind.h:1084:37: note: in definition of macro 'VG_CONCAT4'
#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd
^~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:72:5: note: in expansion of macro 'I_WRAP_SONAME_FNNAME_ZU'
int I_WRAP_SONAME_FNNAME_ZU(NONE,fact2) ( int n )
^~~~~~~~~~~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c: In function '_vgw00000ZU_NONE_fact2':
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:77:8: warning: passing argument 1 of 'pre' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
pre("wrapper2", n);
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:38:25: note: expected 'char *' but argument is of type 'const char *'
static void pre ( char* s, int n );
~~~~~~^
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:81:9: warning: passing argument 1 of 'post' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
post("wrapper2", n, r);
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:37:26: note: expected 'char *' but argument is of type 'const char *'
static void post ( char* s, int n, int r );
~~~~~~^
../../../valgrind-3.14.0/memcheck/tests/wrap8.c: In function 'pre':
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:117:8: warning: passing argument 1 of 'send' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
send("in ");
^~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:104:26: note: expected 'char *' but argument is of type 'const char *'
static void send ( char* s )
~~~~~~^
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:119:8: warning: passing argument 1 of 'send' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
send("-pre: fact(");
^~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:104:26: note: expected 'char *' but argument is of type 'const char *'
static void send ( char* s )
~~~~~~^
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:121:8: warning: passing argument 1 of 'send' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
send(")\n");
^~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:104:26: note: expected 'char *' but argument is of type 'const char *'
static void send ( char* s )
~~~~~~^
../../../valgrind-3.14.0/memcheck/tests/wrap8.c: In function 'post':
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:130:8: warning: passing argument 1 of 'send' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
send("in ");
^~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:104:26: note: expected 'char *' but argument is of type 'const char *'
static void send ( char* s )
~~~~~~^
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:132:8: warning: passing argument 1 of 'send' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
send("-post: fact(");
^~~~~~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:104:26: note: expected 'char *' but argument is of type 'const char *'
static void send ( char* s )
~~~~~~^
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:134:8: warning: passing argument 1 of 'send' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
send(") = ");
^~~~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:104:26: note: expected 'char *' but argument is of type 'const char *'
static void send ( char* s )
~~~~~~^
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:137:8: warning: passing argument 1 of 'send' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
send("\n");
^~~~
../../../valgrind-3.14.0/memcheck/tests/wrap8.c:104:26: note: expected 'char *' but argument is of type 'const char *'
static void send ( char* s )
~~~~~~^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o wrap8 wrap8.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o wrapmalloc.o ../../../valgrind-3.14.0/memcheck/tests/wrapmalloc.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -fpic -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o wrapmallocso_so-wrapmallocso.o `test -f 'wrapmallocso.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`wrapmallocso.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -fpic -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fpic -shared -Wl,-soname -Wl,wrapmallocso.so -Wl,-O1 -Wl,--as-needed -o wrapmallocso.so wrapmallocso_so-wrapmallocso.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-rpath,/usr/lib/valgrind/ptest/memcheck/tests -Wl,-O1 -Wl,--as-needed -o wrapmalloc wrapmalloc.o wrapmallocso.so
make[5]: 'wrapmallocso.so' is up to date.
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o wrapmallocstatic.o ../../../valgrind-3.14.0/memcheck/tests/wrapmallocstatic.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o wrapmallocstatic wrapmallocstatic.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o writev1.o ../../../valgrind-3.14.0/memcheck/tests/writev1.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o writev1 writev1.o
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o long_namespace_xml.o ../../../valgrind-3.14.0/memcheck/tests/long_namespace_xml.cpp
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o long_namespace_xml long_namespace_xml.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -gdwarf-4 -fdebug-types-section -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o dw4-dw4.o `test -f 'dw4.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`dw4.c
../../../valgrind-3.14.0/memcheck/tests/dw4.c:23:6: warning: no previous prototype for 'croak' [-Wmissing-prototypes]
void croak ( void* aV )
^~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -gdwarf-4 -fdebug-types-section -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o dw4 dw4-dw4.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -gz=zlib -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o cdebug_zlib-cdebug.o `test -f 'cdebug.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`cdebug.c
../../../valgrind-3.14.0/memcheck/tests/cdebug.c:1:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main() {
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -gz=zlib -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o cdebug_zlib cdebug_zlib-cdebug.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -gz=zlib-gnu -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o cdebug_zlib_gnu-cdebug.o `test -f 'cdebug.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`cdebug.c
../../../valgrind-3.14.0/memcheck/tests/cdebug.c:1:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main() {
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -gz=zlib-gnu -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o cdebug_zlib_gnu cdebug_zlib_gnu-cdebug.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o stpncpy.o ../../../valgrind-3.14.0/memcheck/tests/stpncpy.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o stpncpy stpncpy.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o threadname.o ../../../valgrind-3.14.0/memcheck/tests/threadname.c
../../../valgrind-3.14.0/memcheck/tests/threadname.c:18:6: warning: no previous prototype for 'bad_things' [-Wmissing-prototypes]
void bad_things(int offset)
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/threadname.c:25:7: warning: no previous prototype for 'child_fn_2' [-Wmissing-prototypes]
void* child_fn_2 ( void* arg )
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/threadname.c:40:7: warning: no previous prototype for 'child_fn_1' [-Wmissing-prototypes]
void* child_fn_1 ( void* arg )
^~~~~~~~~~
../../../valgrind-3.14.0/memcheck/tests/threadname.c:63:7: warning: no previous prototype for 'child_fn_0' [-Wmissing-prototypes]
void* child_fn_0 ( void* arg )
^~~~~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o threadname threadname.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/memcheck/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O2 -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o reach_thread_register-reach_thread_register.o `test -f 'reach_thread_register.c' || echo '../../../valgrind-3.14.0/memcheck/tests/'`reach_thread_register.c
../../../valgrind-3.14.0/memcheck/tests/reach_thread_register.c:17:7: warning: no previous prototype for 'helper' [-Wmissing-prototypes]
void* helper(void* v_bar) {
^~~~~~
../../../valgrind-3.14.0/memcheck/tests/reach_thread_register.c:43:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main() {
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -O2 -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o reach_thread_register reach_thread_register-reach_thread_register.o -lpthread
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests'
make check-local
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests'
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests'
make[4]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests'
Making check in mips32
make[4]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests/mips32'
make bad_sioc fadvise64
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests/mips32'
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o bad_sioc.o ../../../../valgrind-3.14.0/memcheck/tests/mips32/bad_sioc.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o bad_sioc bad_sioc.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fadvise64-fadvise64.o `test -f 'fadvise64.c' || echo '../../../../valgrind-3.14.0/memcheck/tests/mips32/'`fadvise64.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fadvise64 fadvise64-fadvise64.o
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests/mips32'
make check-local
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests/mips32'
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests/mips32'
make[4]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests/mips32'
Making check in linux
make[4]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests/linux'
make brk capget dlclose_leak dlclose_leak_so.so ioctl-tiocsig getregset lsframe1 lsframe2 rfcomm sigqueue stack_changes stack_switch syscalls-2007 syslog-syscall sys-statx timerfd-syscall proc-auxv sys-openat
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests/linux'
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o brk.o ../../../../valgrind-3.14.0/memcheck/tests/linux/brk.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o brk brk.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o capget.o ../../../../valgrind-3.14.0/memcheck/tests/linux/capget.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o capget capget.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o dlclose_leak.o ../../../../valgrind-3.14.0/memcheck/tests/linux/dlclose_leak.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -fpic -g -O0 -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o dlclose_leak_so_so-dlclose_leak_so.o `test -f 'dlclose_leak_so.c' || echo '../../../../valgrind-3.14.0/memcheck/tests/linux/'`dlclose_leak_so.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -fpic -g -O0 -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fpic -shared -Wl,-soname -Wl,dlclose_leak_so.so -Wl,-O1 -Wl,--as-needed -o dlclose_leak_so.so dlclose_leak_so_so-dlclose_leak_so.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-rpath,../../../memcheck/tests/linux -Wl,-O1 -Wl,--as-needed -o dlclose_leak dlclose_leak.o -ldl
make[5]: 'dlclose_leak_so.so' is up to date.
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o ioctl-tiocsig.o ../../../../valgrind-3.14.0/memcheck/tests/linux/ioctl-tiocsig.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o ioctl-tiocsig ioctl-tiocsig.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o getregset.o ../../../../valgrind-3.14.0/memcheck/tests/linux/getregset.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o getregset getregset.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o lsframe1.o ../../../../valgrind-3.14.0/memcheck/tests/linux/lsframe1.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o lsframe1 lsframe1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o lsframe2.o ../../../../valgrind-3.14.0/memcheck/tests/linux/lsframe2.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o lsframe2 lsframe2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o rfcomm.o ../../../../valgrind-3.14.0/memcheck/tests/linux/rfcomm.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o rfcomm rfcomm.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sigqueue.o ../../../../valgrind-3.14.0/memcheck/tests/linux/sigqueue.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sigqueue sigqueue.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o stack_changes.o ../../../../valgrind-3.14.0/memcheck/tests/linux/stack_changes.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o stack_changes stack_changes.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o stack_switch.o ../../../../valgrind-3.14.0/memcheck/tests/linux/stack_switch.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o stack_switch stack_switch.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o syscalls-2007.o ../../../../valgrind-3.14.0/memcheck/tests/linux/syscalls-2007.c
In file included from ../../../../valgrind-3.14.0/memcheck/tests/linux/syscalls-2007.c:24:
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
#warning redirecting incorrect #include <sys/poll.h> to <poll.h>
^~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o syscalls-2007 syscalls-2007.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o syslog-syscall.o ../../../../valgrind-3.14.0/memcheck/tests/linux/syslog-syscall.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o syslog-syscall syslog-syscall.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sys-statx.o ../../../../valgrind-3.14.0/memcheck/tests/linux/sys-statx.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sys-statx sys-statx.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o timerfd-syscall.o ../../../../valgrind-3.14.0/memcheck/tests/linux/timerfd-syscall.c
In file included from ../../../../valgrind-3.14.0/memcheck/tests/linux/timerfd-syscall.c:40:
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/include/sys/signal.h:1:2: warning: #warning redirecting incorrect #include <sys/signal.h> to <signal.h> [-Wcpp]
#warning redirecting incorrect #include <sys/signal.h> to <signal.h>
^~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o timerfd-syscall timerfd-syscall.o -lrt
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o proc-auxv.o ../../../../valgrind-3.14.0/memcheck/tests/linux/proc-auxv.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o proc-auxv proc-auxv.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/memcheck/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sys-openat.o ../../../../valgrind-3.14.0/memcheck/tests/linux/sys-openat.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sys-openat sys-openat.o
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests/linux'
make check-local
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests/linux'
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests/linux'
make[4]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests/linux'
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck/tests'
make[2]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/memcheck'
Making check in cachegrind
make[2]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/cachegrind'
Making check in .
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/cachegrind'
mkdir -p ../.in_place; \
for f in cachegrind-mips32-linux ; do \
rm -f ../.in_place/$f; \
ln -f -s ../cachegrind/$f ../.in_place; \
done
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
mkdir -p ../.in_place; \
for f in ; do \
rm -f ../.in_place/$f.dSYM; \
ln -f -s ../cachegrind/$f.dSYM ../.in_place; \
done
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/cachegrind'
Making check in tests
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/cachegrind/tests'
Making check in .
make[4]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/cachegrind/tests'
make chdir clreq dlclose myprint.so
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/cachegrind/tests'
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/cachegrind/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o chdir.o ../../../valgrind-3.14.0/cachegrind/tests/chdir.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o chdir chdir.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/cachegrind/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o clreq.o ../../../valgrind-3.14.0/cachegrind/tests/clreq.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o clreq clreq.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/cachegrind/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o dlclose.o ../../../valgrind-3.14.0/cachegrind/tests/dlclose.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o dlclose dlclose.o -ldl
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/cachegrind/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -fPIC -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o myprint_so-myprint.o `test -f 'myprint.c' || echo '../../../valgrind-3.14.0/cachegrind/tests/'`myprint.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -fPIC -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -shared -fPIC -Wl,-O1 -Wl,--as-needed -o myprint.so myprint_so-myprint.o
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/cachegrind/tests'
make check-local
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/cachegrind/tests'
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/cachegrind/tests'
make[4]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/cachegrind/tests'
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/cachegrind/tests'
make[2]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/cachegrind'
Making check in callgrind
make[2]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/callgrind'
Making check in .
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/callgrind'
mkdir -p ../.in_place; \
for f in callgrind-mips32-linux ; do \
rm -f ../.in_place/$f; \
ln -f -s ../callgrind/$f ../.in_place; \
done
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
mkdir -p ../.in_place; \
for f in ; do \
rm -f ../.in_place/$f.dSYM; \
ln -f -s ../callgrind/$f.dSYM ../.in_place; \
done
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/callgrind'
Making check in tests
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/callgrind/tests'
Making check in .
make[4]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/callgrind/tests'
make clreq simwork threads
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/callgrind/tests'
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/callgrind/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o clreq.o ../../../valgrind-3.14.0/callgrind/tests/clreq.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o clreq clreq.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/callgrind/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o simwork.o ../../../valgrind-3.14.0/callgrind/tests/simwork.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o simwork simwork.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/callgrind/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o threads.o ../../../valgrind-3.14.0/callgrind/tests/threads.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o threads threads.o -lpthread
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/callgrind/tests'
make check-local
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/callgrind/tests'
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/callgrind/tests'
make[4]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/callgrind/tests'
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/callgrind/tests'
make[2]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/callgrind'
Making check in massif
make[2]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/massif'
Making check in .
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/massif'
mkdir -p ../.in_place; \
for f in massif-mips32-linux vgpreload_massif-mips32-linux.so ; do \
rm -f ../.in_place/$f; \
ln -f -s ../massif/$f ../.in_place; \
done
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
mkdir -p ../.in_place; \
for f in ; do \
rm -f ../.in_place/$f.dSYM; \
ln -f -s ../massif/$f.dSYM ../.in_place; \
done
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/massif'
Making check in tests
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/massif/tests'
make alloc-fns basic big-alloc culling1 culling2 custom_alloc deep ignored ignoring insig long-names long-time mmapunmap malloc_usable new-cpp null one overloaded-new pages_as_heap peak realloc thresholds zero
make[4]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/massif/tests'
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o alloc-fns.o ../../../valgrind-3.14.0/massif/tests/alloc-fns.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o alloc-fns alloc-fns.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o basic.o ../../../valgrind-3.14.0/massif/tests/basic.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o basic basic.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o big-alloc.o ../../../valgrind-3.14.0/massif/tests/big-alloc.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o big-alloc big-alloc.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o culling1.o ../../../valgrind-3.14.0/massif/tests/culling1.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o culling1 culling1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o culling2.o ../../../valgrind-3.14.0/massif/tests/culling2.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o culling2 culling2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o custom_alloc.o ../../../valgrind-3.14.0/massif/tests/custom_alloc.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o custom_alloc custom_alloc.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o deep.o ../../../valgrind-3.14.0/massif/tests/deep.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o deep deep.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o ignored.o ../../../valgrind-3.14.0/massif/tests/ignored.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o ignored ignored.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o ignoring.o ../../../valgrind-3.14.0/massif/tests/ignoring.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o ignoring ignoring.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o insig.o ../../../valgrind-3.14.0/massif/tests/insig.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o insig insig.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o long-names.o ../../../valgrind-3.14.0/massif/tests/long-names.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o long-names long-names.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o long-time.o ../../../valgrind-3.14.0/massif/tests/long-time.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o long-time long-time.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mmapunmap.o ../../../valgrind-3.14.0/massif/tests/mmapunmap.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mmapunmap mmapunmap.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o malloc_usable.o ../../../valgrind-3.14.0/massif/tests/malloc_usable.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o malloc_usable malloc_usable.o
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o new-cpp.o ../../../valgrind-3.14.0/massif/tests/new-cpp.cpp
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o new-cpp new-cpp.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o null.o ../../../valgrind-3.14.0/massif/tests/null.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o null null.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o one.o ../../../valgrind-3.14.0/massif/tests/one.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o one one.o
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o overloaded-new.o ../../../valgrind-3.14.0/massif/tests/overloaded-new.cpp
../../../valgrind-3.14.0/massif/tests/overloaded-new.cpp:17:33: warning: declaration of 'void* operator new(std::size_t)' with attribute 'noinline' follows inline declaration [-Wattributes]
__attribute__((noinline)) void* operator new (std::size_t n)
^~~~~~~~
In file included from ../../../valgrind-3.14.0/massif/tests/overloaded-new.cpp:8:
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/include/c++/8.2.0/new:168:14: note: previous definition of 'void* operator new(std::size_t, void*)' was here
inline void* operator new(std::size_t, void* __p) _GLIBCXX_USE_NOEXCEPT
^~~~~~~~
../../../valgrind-3.14.0/massif/tests/overloaded-new.cpp:22:33: warning: declaration of 'void* operator new(std::size_t, const std::nothrow_t&)' with attribute 'noinline' follows inline declaration [-Wattributes]
__attribute__((noinline)) void* operator new (std::size_t n, std::nothrow_t const &)
^~~~~~~~
In file included from ../../../valgrind-3.14.0/massif/tests/overloaded-new.cpp:8:
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/include/c++/8.2.0/new:168:14: note: previous definition of 'void* operator new(std::size_t, void*)' was here
inline void* operator new(std::size_t, void* __p) _GLIBCXX_USE_NOEXCEPT
^~~~~~~~
../../../valgrind-3.14.0/massif/tests/overloaded-new.cpp:27:33: warning: declaration of 'void* operator new [](std::size_t)' with attribute 'noinline' follows inline declaration [-Wattributes]
__attribute__((noinline)) void* operator new[] (std::size_t n)
^~~~~~~~
In file included from ../../../valgrind-3.14.0/massif/tests/overloaded-new.cpp:8:
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/include/c++/8.2.0/new:170:14: note: previous definition of 'void* operator new [](std::size_t, void*)' was here
inline void* operator new[](std::size_t, void* __p) _GLIBCXX_USE_NOEXCEPT
^~~~~~~~
../../../valgrind-3.14.0/massif/tests/overloaded-new.cpp:32:33: warning: declaration of 'void* operator new [](std::size_t, const std::nothrow_t&)' with attribute 'noinline' follows inline declaration [-Wattributes]
__attribute__((noinline)) void* operator new[] (std::size_t n, std::nothrow_t const &)
^~~~~~~~
In file included from ../../../valgrind-3.14.0/massif/tests/overloaded-new.cpp:8:
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/include/c++/8.2.0/new:170:14: note: previous definition of 'void* operator new [](std::size_t, void*)' was here
inline void* operator new[](std::size_t, void* __p) _GLIBCXX_USE_NOEXCEPT
^~~~~~~~
../../../valgrind-3.14.0/massif/tests/overloaded-new.cpp:37:32: warning: declaration of 'void operator delete(void*)' with attribute 'noinline' follows inline declaration [-Wattributes]
__attribute__((noinline)) void operator delete (void* p)
^~~~~~~~
In file included from ../../../valgrind-3.14.0/massif/tests/overloaded-new.cpp:8:
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/include/c++/8.2.0/new:174:13: note: previous definition of 'void operator delete(void*, void*)' was here
inline void operator delete (void*, void*) _GLIBCXX_USE_NOEXCEPT { }
^~~~~~~~
../../../valgrind-3.14.0/massif/tests/overloaded-new.cpp:42:32: warning: declaration of 'void operator delete [](void*)' with attribute 'noinline' follows inline declaration [-Wattributes]
__attribute__((noinline)) void operator delete[] (void* p)
^~~~~~~~
In file included from ../../../valgrind-3.14.0/massif/tests/overloaded-new.cpp:8:
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/include/c++/8.2.0/new:175:13: note: previous definition of 'void operator delete [](void*, void*)' was here
inline void operator delete[](void*, void*) _GLIBCXX_USE_NOEXCEPT { }
^~~~~~~~
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o overloaded-new overloaded-new.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pages_as_heap.o ../../../valgrind-3.14.0/massif/tests/pages_as_heap.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pages_as_heap pages_as_heap.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o peak.o ../../../valgrind-3.14.0/massif/tests/peak.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o peak peak.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o realloc.o ../../../valgrind-3.14.0/massif/tests/realloc.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o realloc realloc.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o thresholds.o ../../../valgrind-3.14.0/massif/tests/thresholds.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o thresholds thresholds.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/massif/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o zero.o ../../../valgrind-3.14.0/massif/tests/zero.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o zero zero.o
make[4]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/massif/tests'
make check-local
make[4]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/massif/tests'
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
make[4]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/massif/tests'
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/massif/tests'
make[2]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/massif'
Making check in lackey
make[2]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/lackey'
Making check in .
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/lackey'
mkdir -p ../.in_place; \
for f in lackey-mips32-linux ; do \
rm -f ../.in_place/$f; \
ln -f -s ../lackey/$f ../.in_place; \
done
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
mkdir -p ../.in_place; \
for f in ; do \
rm -f ../.in_place/$f.dSYM; \
ln -f -s ../lackey/$f.dSYM ../.in_place; \
done
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/lackey'
Making check in tests
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/lackey/tests'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/lackey/tests'
make[2]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/lackey'
Making check in none
make[2]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none'
Making check in .
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none'
mkdir -p ../.in_place; \
for f in none-mips32-linux ; do \
rm -f ../.in_place/$f; \
ln -f -s ../none/$f ../.in_place; \
done
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
mkdir -p ../.in_place; \
for f in ; do \
rm -f ../.in_place/$f.dSYM; \
ln -f -s ../none/$f.dSYM ../.in_place; \
done
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none'
Making check in tests
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests'
Making check in .
make[4]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests'
make args async-sigs bitfield1 bug129866 bug234814 closeall coolo_strlen discard exec-sigmask execve faultstatus fcntl_setown fdleak_cmsg fdleak_creat fdleak_dup fdleak_dup2 fdleak_fcntl fdleak_ipv4 fdleak_open fdleak_pipe fdleak_socketpair floored fork fucomip ioctl_moans libvex_test libvexmultiarch_test manythreads mmap_fcntl_bug munmap_exe map_unaligned map_unmap mq nocwd pending procfs-cmdline-exe pselect_alarm pselect_sigmask_null pth_atfork1 pth_blockedsig pth_cancel1 pth_cancel2 pth_cvsimple pth_empty pth_exit pth_exit2 pth_mutexspeed pth_once pth_rwlock pth_stackalign pth_2sig pth_term_signal rcrl readline1 require-text-symbol res_search resolv rlimit_nofile selfrun sem semlimit sha1_test shortpush shorts stackgrowth sigstackgrowth sigsusp syscall-restart1 syscall-restart2 syslog system thread-exits threaded-fork threadederrno timestamp tls tls.so tls2.so unit_debuglog valgrind_cpp_test vgprintf vgprintf_nvalgrind coolo_sigaction gxx304 process_vm_readv_writev nestedfns rlimit64_nofile ppoll_alarm ansi
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests'
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o args.o ../../../valgrind-3.14.0/none/tests/args.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o args args.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o async-sigs.o ../../../valgrind-3.14.0/none/tests/async-sigs.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o async-sigs async-sigs.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o bitfield1.o ../../../valgrind-3.14.0/none/tests/bitfield1.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o bitfield1 bitfield1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o bug129866.o ../../../valgrind-3.14.0/none/tests/bug129866.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o bug129866 bug129866.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o bug234814.o ../../../valgrind-3.14.0/none/tests/bug234814.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o bug234814 bug234814.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o closeall.o ../../../valgrind-3.14.0/none/tests/closeall.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o closeall closeall.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o coolo_strlen.o ../../../valgrind-3.14.0/none/tests/coolo_strlen.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o coolo_strlen coolo_strlen.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o discard.o ../../../valgrind-3.14.0/none/tests/discard.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o discard discard.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o exec-sigmask.o ../../../valgrind-3.14.0/none/tests/exec-sigmask.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o exec-sigmask exec-sigmask.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -Wno-nonnull -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o execve-execve.o `test -f 'execve.c' || echo '../../../valgrind-3.14.0/none/tests/'`execve.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -Wno-nonnull -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o execve execve-execve.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o faultstatus.o ../../../valgrind-3.14.0/none/tests/faultstatus.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o faultstatus faultstatus.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fcntl_setown.o ../../../valgrind-3.14.0/none/tests/fcntl_setown.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fcntl_setown fcntl_setown.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fdleak_cmsg-fdleak_cmsg.o `test -f 'fdleak_cmsg.c' || echo '../../../valgrind-3.14.0/none/tests/'`fdleak_cmsg.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fdleak_cmsg fdleak_cmsg-fdleak_cmsg.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fdleak_creat.o ../../../valgrind-3.14.0/none/tests/fdleak_creat.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fdleak_creat fdleak_creat.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fdleak_dup.o ../../../valgrind-3.14.0/none/tests/fdleak_dup.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fdleak_dup fdleak_dup.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fdleak_dup2.o ../../../valgrind-3.14.0/none/tests/fdleak_dup2.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fdleak_dup2 fdleak_dup2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fdleak_fcntl.o ../../../valgrind-3.14.0/none/tests/fdleak_fcntl.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fdleak_fcntl fdleak_fcntl.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fdleak_ipv4.o ../../../valgrind-3.14.0/none/tests/fdleak_ipv4.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fdleak_ipv4 fdleak_ipv4.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fdleak_open.o ../../../valgrind-3.14.0/none/tests/fdleak_open.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fdleak_open fdleak_open.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fdleak_pipe.o ../../../valgrind-3.14.0/none/tests/fdleak_pipe.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fdleak_pipe fdleak_pipe.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fdleak_socketpair.o ../../../valgrind-3.14.0/none/tests/fdleak_socketpair.c
In file included from ../../../valgrind-3.14.0/none/tests/fdleak_socketpair.c:4:
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/include/sys/errno.h:1:2: warning: #warning redirecting incorrect #include <sys/errno.h> to <errno.h> [-Wcpp]
#warning redirecting incorrect #include <sys/errno.h> to <errno.h>
^~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fdleak_socketpair fdleak_socketpair.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o floored.o ../../../valgrind-3.14.0/none/tests/floored.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o floored floored.o -lm
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fork.o ../../../valgrind-3.14.0/none/tests/fork.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fork fork.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fucomip.o ../../../valgrind-3.14.0/none/tests/fucomip.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fucomip fucomip.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o ioctl_moans.o ../../../valgrind-3.14.0/none/tests/ioctl_moans.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o ioctl_moans ioctl_moans.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o libvex_test-libvex_test.o `test -f 'libvex_test.c' || echo '../../../valgrind-3.14.0/none/tests/'`libvex_test.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o libvex_test libvex_test-libvex_test.o ../../VEX/libvex-mips32-linux.a
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o libvexmultiarch_test-libvex_test.o `test -f 'libvex_test.c' || echo '../../../valgrind-3.14.0/none/tests/'`libvex_test.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o libvexmultiarch_test libvexmultiarch_test-libvex_test.o ../../VEX/libvexmultiarch-mips32-linux.a ../../VEX/libvex-mips32-linux.a
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o manythreads.o ../../../valgrind-3.14.0/none/tests/manythreads.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o manythreads manythreads.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mmap_fcntl_bug.o ../../../valgrind-3.14.0/none/tests/mmap_fcntl_bug.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mmap_fcntl_bug mmap_fcntl_bug.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o munmap_exe.o ../../../valgrind-3.14.0/none/tests/munmap_exe.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o munmap_exe munmap_exe.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o map_unaligned.o ../../../valgrind-3.14.0/none/tests/map_unaligned.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o map_unaligned map_unaligned.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o map_unmap.o ../../../valgrind-3.14.0/none/tests/map_unmap.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o map_unmap map_unmap.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mq.o ../../../valgrind-3.14.0/none/tests/mq.c
../../../valgrind-3.14.0/none/tests/mq.c: In function 'main':
../../../valgrind-3.14.0/none/tests/mq.c:91:30: warning: passing argument 3 to restrict-qualified parameter aliases with argument 2 [-Wrestrict]
if (mq_setattr(mqdw, &mqa, &mqa) < 0)
~~~~ ^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mq mq.o -lrt
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o nocwd.o ../../../valgrind-3.14.0/none/tests/nocwd.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o nocwd nocwd.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pending.o ../../../valgrind-3.14.0/none/tests/pending.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pending pending.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o procfs-cmdline-exe.o ../../../valgrind-3.14.0/none/tests/procfs-cmdline-exe.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o procfs-cmdline-exe procfs-cmdline-exe.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pselect_alarm.o ../../../valgrind-3.14.0/none/tests/pselect_alarm.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pselect_alarm pselect_alarm.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pselect_sigmask_null.o ../../../valgrind-3.14.0/none/tests/pselect_sigmask_null.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pselect_sigmask_null pselect_sigmask_null.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_atfork1.o ../../../valgrind-3.14.0/none/tests/pth_atfork1.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_atfork1 pth_atfork1.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_blockedsig.o ../../../valgrind-3.14.0/none/tests/pth_blockedsig.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_blockedsig pth_blockedsig.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -Wno-shadow -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_cancel1-pth_cancel1.o `test -f 'pth_cancel1.c' || echo '../../../valgrind-3.14.0/none/tests/'`pth_cancel1.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -Wno-shadow -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_cancel1 pth_cancel1-pth_cancel1.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_cancel2.o ../../../valgrind-3.14.0/none/tests/pth_cancel2.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_cancel2 pth_cancel2.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_cvsimple.o ../../../valgrind-3.14.0/none/tests/pth_cvsimple.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_cvsimple pth_cvsimple.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_empty.o ../../../valgrind-3.14.0/none/tests/pth_empty.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_empty pth_empty.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_exit.o ../../../valgrind-3.14.0/none/tests/pth_exit.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_exit pth_exit.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_exit2.o ../../../valgrind-3.14.0/none/tests/pth_exit2.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_exit2 pth_exit2.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_mutexspeed.o ../../../valgrind-3.14.0/none/tests/pth_mutexspeed.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_mutexspeed pth_mutexspeed.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_once.o ../../../valgrind-3.14.0/none/tests/pth_once.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_once pth_once.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_rwlock-pth_rwlock.o `test -f 'pth_rwlock.c' || echo '../../../valgrind-3.14.0/none/tests/'`pth_rwlock.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_rwlock pth_rwlock-pth_rwlock.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_stackalign.o ../../../valgrind-3.14.0/none/tests/pth_stackalign.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_stackalign pth_stackalign.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_2sig.o ../../../valgrind-3.14.0/none/tests/pth_2sig.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_2sig pth_2sig.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pth_term_signal.o ../../../valgrind-3.14.0/none/tests/pth_term_signal.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pth_term_signal pth_term_signal.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o rcrl.o ../../../valgrind-3.14.0/none/tests/rcrl.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o rcrl rcrl.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o readline1.o ../../../valgrind-3.14.0/none/tests/readline1.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o readline1 readline1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o require-text-symbol.o ../../../valgrind-3.14.0/none/tests/require-text-symbol.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o require-text-symbol require-text-symbol.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o res_search.o ../../../valgrind-3.14.0/none/tests/res_search.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o res_search res_search.o -lresolv -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o resolv-resolv.o `test -f 'resolv.c' || echo '../../../valgrind-3.14.0/none/tests/'`resolv.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o resolv resolv-resolv.o -lresolv -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o rlimit_nofile.o ../../../valgrind-3.14.0/none/tests/rlimit_nofile.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o rlimit_nofile rlimit_nofile.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o selfrun.o ../../../valgrind-3.14.0/none/tests/selfrun.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o selfrun selfrun.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sem.o ../../../valgrind-3.14.0/none/tests/sem.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sem sem.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o semlimit.o ../../../valgrind-3.14.0/none/tests/semlimit.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o semlimit semlimit.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sha1_test-sha1_test.o `test -f 'sha1_test.c' || echo '../../../valgrind-3.14.0/none/tests/'`sha1_test.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sha1_test sha1_test-sha1_test.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o shortpush.o ../../../valgrind-3.14.0/none/tests/shortpush.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o shortpush shortpush.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o shorts.o ../../../valgrind-3.14.0/none/tests/shorts.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o shorts shorts.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o stackgrowth.o ../../../valgrind-3.14.0/none/tests/stackgrowth.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o stackgrowth stackgrowth.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sigstackgrowth.o ../../../valgrind-3.14.0/none/tests/sigstackgrowth.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sigstackgrowth sigstackgrowth.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o sigsusp.o ../../../valgrind-3.14.0/none/tests/sigsusp.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o sigsusp sigsusp.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o syscall-restart1.o ../../../valgrind-3.14.0/none/tests/syscall-restart1.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o syscall-restart1 syscall-restart1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o syscall-restart2.o ../../../valgrind-3.14.0/none/tests/syscall-restart2.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o syscall-restart2 syscall-restart2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o syslog.o ../../../valgrind-3.14.0/none/tests/syslog.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o syslog syslog.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o system.o ../../../valgrind-3.14.0/none/tests/system.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o system system.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o thread-exits.o ../../../valgrind-3.14.0/none/tests/thread-exits.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o thread-exits thread-exits.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o threaded-fork.o ../../../valgrind-3.14.0/none/tests/threaded-fork.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o threaded-fork threaded-fork.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o threadederrno-threadederrno.o `test -f 'threadederrno.c' || echo '../../../valgrind-3.14.0/none/tests/'`threadederrno.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o threadederrno threadederrno-threadederrno.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o timestamp.o ../../../valgrind-3.14.0/none/tests/timestamp.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o timestamp timestamp.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o tls.o ../../../valgrind-3.14.0/none/tests/tls.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o tls2.o ../../../valgrind-3.14.0/none/tests/tls2.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -fPIC -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o tls_so-tls_so.o `test -f 'tls_so.c' || echo '../../../valgrind-3.14.0/none/tests/'`tls_so.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o tls2_so.o ../../../valgrind-3.14.0/none/tests/tls2_so.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -shared -Wl,-O1 -Wl,--as-needed -o tls2.so tls2_so.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -fPIC -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-rpath,/usr/lib/valgrind/ptest/none/tests -shared -fPIC -Wl,-O1 -Wl,--as-needed -o tls.so tls_so-tls_so.o tls2.so
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-rpath,/usr/lib/valgrind/ptest/none/tests -Wl,-O1 -Wl,--as-needed -o tls tls.o tls2.o tls.so tls2.so -lpthread
make[5]: 'tls.so' is up to date.
make[5]: 'tls2.so' is up to date.
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o unit_debuglog.o ../../../valgrind-3.14.0/none/tests/unit_debuglog.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o unit_debuglog unit_debuglog.o
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o valgrind_cpp_test.o ../../../valgrind-3.14.0/none/tests/valgrind_cpp_test.cpp
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o valgrind_cpp_test valgrind_cpp_test.o -lstdc++
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o vgprintf.o ../../../valgrind-3.14.0/none/tests/vgprintf.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o vgprintf vgprintf.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -DNVALGRIND -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o vgprintf_nvalgrind-vgprintf.o `test -f 'vgprintf.c' || echo '../../../valgrind-3.14.0/none/tests/'`vgprintf.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DNVALGRIND -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o vgprintf_nvalgrind vgprintf_nvalgrind-vgprintf.o
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o coolo_sigaction.o ../../../valgrind-3.14.0/none/tests/coolo_sigaction.cpp
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o coolo_sigaction coolo_sigaction.o
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o gxx304.o ../../../valgrind-3.14.0/none/tests/gxx304.cpp
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o gxx304 gxx304.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o process_vm_readv_writev.o ../../../valgrind-3.14.0/none/tests/process_vm_readv_writev.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o process_vm_readv_writev process_vm_readv_writev.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o nestedfns-nestedfns.o `test -f 'nestedfns.c' || echo '../../../valgrind-3.14.0/none/tests/'`nestedfns.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o nestedfns nestedfns-nestedfns.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o rlimit64_nofile.o ../../../valgrind-3.14.0/none/tests/rlimit64_nofile.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o rlimit64_nofile rlimit64_nofile.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o ppoll_alarm.o ../../../valgrind-3.14.0/none/tests/ppoll_alarm.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o ppoll_alarm ppoll_alarm.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/none/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -ansi -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o ansi-ansi.o `test -f 'ansi.c' || echo '../../../valgrind-3.14.0/none/tests/'`ansi.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -ansi -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o ansi ansi-ansi.o
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests'
make check-local
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests'
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests'
make[4]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests'
Making check in scripts
make[4]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/scripts'
make check-local
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/scripts'
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/scripts'
make[4]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/scripts'
Making check in mips32
make[4]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/mips32'
make allexec block_size branches branch_pc branches_r6 change_fp_mode FPUarithmetic LoadStore LoadStore1 MemCpyTest MIPS32int MIPS32r6int MoveIns round vfp SignalException bug320057-mips32 mips32_dsp mips32_dspr2 unaligned_load_store pc_instructions_r6 test_fcsr test_math round_fpu64 fp_r6 fpu_branches msa_arithmetic msa_comparison msa_data_transfer msa_fpu msa_logical_and_shift msa_shuffle unaligned_load_store test_fcsr test_math round_fpu64 fpu_branches
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/mips32'
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-nonnull -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o allexec-allexec.o `test -f 'allexec.c' || echo '../../../../valgrind-3.14.0/none/tests/mips32/'`allexec.c
../../../../valgrind-3.14.0/none/tests/mips32/allexec.c:20:6: warning: no previous prototype for 'test_allexec' [-Wmissing-prototypes]
void test_allexec (char *exec)
^~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/allexec.c: In function 'main':
../../../../valgrind-3.14.0/none/tests/mips32/allexec.c:46:21: warning: passing argument 1 of 'test_allexec' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
test_allexec ("./allexec32");
^~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/allexec.c:20:26: note: expected 'char *' but argument is of type 'const char *'
void test_allexec (char *exec)
~~~~~~^~~~
../../../../valgrind-3.14.0/none/tests/mips32/allexec.c:48:21: warning: passing argument 1 of 'test_allexec' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
test_allexec ("./allexec64");
^~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/allexec.c:20:26: note: expected 'char *' but argument is of type 'const char *'
void test_allexec (char *exec)
~~~~~~^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -Wno-nonnull -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o allexec allexec-allexec.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o block_size.o ../../../../valgrind-3.14.0/none/tests/mips32/block_size.c
../../../../valgrind-3.14.0/none/tests/mips32/block_size.c:3:31: warning: function declaration isn't a prototype [-Wstrict-prototypes]
__attribute__((noinline)) int test_block_size1 ()
^~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/block_size.c:32:31: warning: function declaration isn't a prototype [-Wstrict-prototypes]
__attribute__((noinline)) int test_block_size2 ()
^~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/block_size.c:57:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main ()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o block_size block_size.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o branches.o ../../../../valgrind-3.14.0/none/tests/mips32/branches.c
../../../../valgrind-3.14.0/none/tests/mips32/branches.c:277:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
/tmp/ccYfZCdO.s: Assembler messages:
/tmp/ccYfZCdO.s:17017: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17066: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17115: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17164: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17214: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17262: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17311: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17359: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17408: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17457: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17506: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17555: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17604: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17653: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17702: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17751: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17800: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17849: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17898: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17947: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:17996: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:18045: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:18094: Warning: MIPS PIC call to register other than $25
/tmp/ccYfZCdO.s:18143: Warning: MIPS PIC call to register other than $25
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o branches branches.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o branch_pc.o ../../../../valgrind-3.14.0/none/tests/mips32/branch_pc.c
../../../../valgrind-3.14.0/none/tests/mips32/branch_pc.c:45:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main() {
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o branch_pc branch_pc.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o branches_r6.o ../../../../valgrind-3.14.0/none/tests/mips32/branches_r6.c
../../../../valgrind-3.14.0/none/tests/mips32/branches_r6.c:144:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main() {
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o branches_r6 branches_r6.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o change_fp_mode.o ../../../../valgrind-3.14.0/none/tests/mips32/change_fp_mode.c
../../../../valgrind-3.14.0/none/tests/mips32/change_fp_mode.c:62:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main() {
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o change_fp_mode change_fp_mode.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o FPUarithmetic.o ../../../../valgrind-3.14.0/none/tests/mips32/FPUarithmetic.c
../../../../valgrind-3.14.0/none/tests/mips32/FPUarithmetic.c:32:29: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/FPUarithmetic.c:32:37: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/FPUarithmetic.c:32:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/FPUarithmetic.c:32:53: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/FPUarithmetic.c:94:6: warning: no previous prototype for 'set_rounding_mode' [-Wmissing-prototypes]
void set_rounding_mode(round_mode_t mode)
^~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/FPUarithmetic.c:127:5: warning: no previous prototype for 'arithmeticOperations' [-Wmissing-prototypes]
int arithmeticOperations(flt_art_op_t op)
^~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/FPUarithmetic.c:228:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o FPUarithmetic FPUarithmetic.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o LoadStore.o ../../../../valgrind-3.14.0/none/tests/mips32/LoadStore.c
../../../../valgrind-3.14.0/none/tests/mips32/LoadStore.c:73:6: warning: no previous prototype for 'ppMem' [-Wmissing-prototypes]
void ppMem(unsigned int* m, int len)
^~~~~
../../../../valgrind-3.14.0/none/tests/mips32/LoadStore.c:94:6: warning: no previous prototype for 'ppMem1' [-Wmissing-prototypes]
void ppMem1(unsigned int* m, int len)
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/LoadStore.c:120:6: warning: no previous prototype for 'ppMem0' [-Wmissing-prototypes]
void ppMem0(unsigned int* m, int len)
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/LoadStore.c:143:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o LoadStore LoadStore.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o LoadStore1.o ../../../../valgrind-3.14.0/none/tests/mips32/LoadStore1.c
../../../../valgrind-3.14.0/none/tests/mips32/LoadStore1.c:73:6: warning: no previous prototype for 'ppMem' [-Wmissing-prototypes]
void ppMem(unsigned int* m, int len)
^~~~~
../../../../valgrind-3.14.0/none/tests/mips32/LoadStore1.c:94:6: warning: no previous prototype for 'ppMem1' [-Wmissing-prototypes]
void ppMem1(unsigned int* m, int len)
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/LoadStore1.c:120:6: warning: no previous prototype for 'ppMem0' [-Wmissing-prototypes]
void ppMem0(unsigned int* m, int len)
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/LoadStore1.c:143:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o LoadStore1 LoadStore1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o MemCpyTest.o ../../../../valgrind-3.14.0/none/tests/mips32/MemCpyTest.c
../../../../valgrind-3.14.0/none/tests/mips32/MemCpyTest.c:33:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main ()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o MemCpyTest MemCpyTest.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o MIPS32int.o ../../../../valgrind-3.14.0/none/tests/mips32/MIPS32int.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o MIPS32int MIPS32int.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o MIPS32r6int.o ../../../../valgrind-3.14.0/none/tests/mips32/MIPS32r6int.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o MIPS32r6int MIPS32r6int.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o MoveIns.o ../../../../valgrind-3.14.0/none/tests/mips32/MoveIns.c
../../../../valgrind-3.14.0/none/tests/mips32/MoveIns.c:271:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o MoveIns MoveIns.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o round.o ../../../../valgrind-3.14.0/none/tests/mips32/round.c
../../../../valgrind-3.14.0/none/tests/mips32/round.c:30:29: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/round.c:30:37: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/round.c:30:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/round.c:30:53: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/round.c:143:6: warning: no previous prototype for 'set_rounding_mode' [-Wmissing-prototypes]
void set_rounding_mode(round_mode_t mode)
^~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/round.c:164:6: warning: function declaration isn't a prototype [-Wstrict-prototypes]
void clear_fcc(){
^~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/round.c:175:5: warning: no previous prototype for 'directedRoundingMode' [-Wmissing-prototypes]
int directedRoundingMode(flt_dir_op_t op) {
^~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/round.c:232:5: warning: no previous prototype for 'FCSRRoundingMode' [-Wmissing-prototypes]
int FCSRRoundingMode(flt_round_op_t op1)
^~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/round.c:286:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o round round.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o vfp.o ../../../../valgrind-3.14.0/none/tests/mips32/vfp.c
../../../../valgrind-3.14.0/none/tests/mips32/vfp.c:267:6: warning: no previous prototype for 'ppMem' [-Wmissing-prototypes]
void ppMem(double *m, int len)
^~~~~
../../../../valgrind-3.14.0/none/tests/mips32/vfp.c:281:6: warning: no previous prototype for 'ppMemF' [-Wmissing-prototypes]
void ppMemF(float *m, int len)
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/vfp.c:295:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o vfp vfp.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o SignalException.o ../../../../valgrind-3.14.0/none/tests/mips32/SignalException.c
../../../../valgrind-3.14.0/none/tests/mips32/SignalException.c:60:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
static void test2()
^~~~~
../../../../valgrind-3.14.0/none/tests/mips32/SignalException.c:76:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o SignalException SignalException.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o bug320057-mips32.o ../../../../valgrind-3.14.0/none/tests/mips32/bug320057-mips32.c
../../../../valgrind-3.14.0/none/tests/mips32/bug320057-mips32.c:15:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -lrt -Wl,-O1 -Wl,--as-needed -o bug320057-mips32 bug320057-mips32.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mips32_dsp.o ../../../../valgrind-3.14.0/none/tests/mips32/mips32_dsp.c
../../../../valgrind-3.14.0/none/tests/mips32/mips32_dsp.c:12:6: warning: no previous prototype for 'ppMem' [-Wmissing-prototypes]
void ppMem(unsigned int* _mem, int _len)
^~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mips32_dsp mips32_dsp.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mips32_dspr2.o ../../../../valgrind-3.14.0/none/tests/mips32/mips32_dspr2.c
../../../../valgrind-3.14.0/none/tests/mips32/mips32_dspr2.c:12:6: warning: no previous prototype for 'ppMem' [-Wmissing-prototypes]
void ppMem(unsigned int* _mem, int _len)
^~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mips32_dspr2 mips32_dspr2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o unaligned_load_store.o ../../../../valgrind-3.14.0/none/tests/mips32/unaligned_load_store.c
../../../../valgrind-3.14.0/none/tests/mips32/unaligned_load_store.c:7:6: warning: no previous prototype for 'printMem' [-Wmissing-prototypes]
void printMem(char* s)
^~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/unaligned_load_store.c:15:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main ()
^~~~
../../../../valgrind-3.14.0/none/tests/mips32/unaligned_load_store.c: In function 'main':
../../../../valgrind-3.14.0/none/tests/mips32/unaligned_load_store.c:18:13: warning: passing argument 1 of 'printMem' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
printMem("PRE lwl");
^~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/unaligned_load_store.c:7:21: note: expected 'char *' but argument is of type 'const char *'
void printMem(char* s)
~~~~~~^
../../../../valgrind-3.14.0/none/tests/mips32/unaligned_load_store.c:36:13: warning: passing argument 1 of 'printMem' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
printMem("POST lwl");
^~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/unaligned_load_store.c:7:21: note: expected 'char *' but argument is of type 'const char *'
void printMem(char* s)
~~~~~~^
../../../../valgrind-3.14.0/none/tests/mips32/unaligned_load_store.c:47:13: warning: passing argument 1 of 'printMem' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
printMem("PRE lwr");
^~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/unaligned_load_store.c:7:21: note: expected 'char *' but argument is of type 'const char *'
void printMem(char* s)
~~~~~~^
../../../../valgrind-3.14.0/none/tests/mips32/unaligned_load_store.c:65:13: warning: passing argument 1 of 'printMem' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
printMem("POST lwr");
^~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/unaligned_load_store.c:7:21: note: expected 'char *' but argument is of type 'const char *'
void printMem(char* s)
~~~~~~^
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o unaligned_load_store unaligned_load_store.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pc_instructions_r6.o ../../../../valgrind-3.14.0/none/tests/mips32/pc_instructions_r6.c
../../../../valgrind-3.14.0/none/tests/mips32/pc_instructions_r6.c:68:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main() {
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pc_instructions_r6 pc_instructions_r6.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o test_fcsr.o ../../../../valgrind-3.14.0/none/tests/mips32/test_fcsr.c
../../../../valgrind-3.14.0/none/tests/mips32/test_fcsr.c:15:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main ()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o test_fcsr test_fcsr.o
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -c -o test_math.o ../../../../valgrind-3.14.0/none/tests/mips32/test_math.cpp
mips-yoe-linux-musl-g++ -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -Wl,-O1 -Wl,--as-needed -o test_math test_math.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o round_fpu64.o ../../../../valgrind-3.14.0/none/tests/mips32/round_fpu64.c
../../../../valgrind-3.14.0/none/tests/mips32/round_fpu64.c:35:29: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/round_fpu64.c:35:37: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/round_fpu64.c:35:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/round_fpu64.c:35:53: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
^~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/round_fpu64.c:200:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o round_fpu64 round_fpu64.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fp_r6.o ../../../../valgrind-3.14.0/none/tests/mips32/fp_r6.c
../../../../valgrind-3.14.0/none/tests/mips32/fp_r6.c:318:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main () {
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fp_r6 fp_r6.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o fpu_branches.o ../../../../valgrind-3.14.0/none/tests/mips32/fpu_branches.c
../../../../valgrind-3.14.0/none/tests/mips32/fpu_branches.c:174:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
int main()
^~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o fpu_branches fpu_branches.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -mmsa -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o msa_arithmetic-msa_arithmetic.o `test -f 'msa_arithmetic.c' || echo '../../../../valgrind-3.14.0/none/tests/mips32/'`msa_arithmetic.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -mmsa -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o msa_arithmetic msa_arithmetic-msa_arithmetic.o
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux-musl/../../libexec/mips-yoe-linux-musl/gcc/mips-yoe-linux-musl/8.2.0/ld: warning: msa_arithmetic uses -mdouble-float (set by TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/lib/../lib/crt1.o), msa_arithmetic-msa_arithmetic.o uses -mgp32 -mfp64
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -mmsa -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o msa_comparison-msa_comparison.o `test -f 'msa_comparison.c' || echo '../../../../valgrind-3.14.0/none/tests/mips32/'`msa_comparison.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -mmsa -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o msa_comparison msa_comparison-msa_comparison.o
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux-musl/../../libexec/mips-yoe-linux-musl/gcc/mips-yoe-linux-musl/8.2.0/ld: warning: msa_comparison uses -mdouble-float (set by TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/lib/../lib/crt1.o), msa_comparison-msa_comparison.o uses -mgp32 -mfp64
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -mmsa -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o msa_data_transfer-msa_data_transfer.o `test -f 'msa_data_transfer.c' || echo '../../../../valgrind-3.14.0/none/tests/mips32/'`msa_data_transfer.c
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c: In function 'main':
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 23 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:274:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -184, w0, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -1 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:275:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", 8, w1, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -11 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:276:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", 88, w2, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -20 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:277:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", 160, w3, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -13 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:278:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", 104, w4, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -43 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:279:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", 344, w5, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 18 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:280:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -144, w6, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 56 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:281:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -448, w7, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 42 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:282:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -336, w8, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -62 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:283:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", 496, w9, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 31 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:284:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -248, w10, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 58 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:285:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -464, w11, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 32 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:286:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -256, w12, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 18 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:287:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -144, w13, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 60 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:288:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -480, w14, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 6 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:289:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -48, w15, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -36 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:290:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", 288, w16, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -59 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:292:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", 472, w18, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 20 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:293:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -160, w19, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -53 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:294:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", 424, w20, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 23 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:295:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -184, w21, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 61 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:296:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -488, w22, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 24 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:297:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -192, w23, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 60 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:298:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -480, w24, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 22 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:299:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -176, w25, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -57 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:300:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", 456, w26, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 27 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:301:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -216, w27, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 19 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:302:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -152, w28, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 15 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:303:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", -120, w29, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -23 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:305:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.d", 184, w31, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -51 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:306:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 408, w0, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 52 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:307:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -420, w1, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 20 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:308:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -164, w2, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -1 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:309:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 8, w3, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -55 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:310:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 444, w4, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -26 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:311:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 212, w5, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -9 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:312:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 76, w6, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 50 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:313:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -400, w7, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -25 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:314:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 204, w8, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -43 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:315:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 348, w9, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 43 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:316:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -348, w10, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -58 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:317:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 464, w11, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 38 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:318:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -304, w12, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 39 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:319:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -312, w13, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 11 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:320:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -88, w14, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -62 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:321:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 500, w15, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -25 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:322:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 204, w16, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 15 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:323:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -124, w17, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 21 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:324:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -168, w18, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -14 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:325:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 116, w19, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -26 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:326:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 212, w20, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 18 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:327:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -144, w21, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -55 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:328:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 444, w22, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -30 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:329:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 244, w23, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -24 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:330:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 196, w24, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -49 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:331:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 392, w25, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 60 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:332:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -480, w26, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 58 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:333:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -468, w27, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 29 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:334:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -232, w28, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -4 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:335:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 36, w29, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -28 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:336:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", 228, w30, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 41 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:337:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.w", -332, w31, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -16 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:338:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 134, w0, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 55 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:339:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -444, w1, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -23 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:340:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 190, w2, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -8 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:341:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 68, w3, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -35 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:342:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 282, w4, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 30 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:343:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -244, w5, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -23 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:344:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 184, w6, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 3 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:345:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -26, w7, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 51 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:346:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -408, w8, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -43 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:347:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 348, w9, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 8 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:348:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -70, w10, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 24 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:349:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -198, w11, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 59 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:350:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -474, w12, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -44 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:351:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 354, w13, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 25 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:352:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -206, w14, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -30 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:353:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 242, w15, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 34 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:354:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -278, w16, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -17 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:355:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 140, w17, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 19 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:356:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -152, w18, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -56 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:357:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 448, w19, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -63 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:358:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 510, w20, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 27 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:359:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -218, w21, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -22 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:360:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 182, w22, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -24 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:361:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 196, w23, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 41 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:362:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -334, w24, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -27 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:363:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 218, w25, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -30 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:364:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 242, w26, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 6 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:365:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -52, w27, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 32 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:366:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -256, w28, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 5 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:367:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", -40, w29, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -16 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:368:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 130, w30, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -48 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:369:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.h", 390, w31, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -3 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:370:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 30, w0, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 24 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:371:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -192, w1, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 6 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:372:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -52, w2, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 24 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:373:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -198, w3, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -9 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:374:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 77, w4, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 47 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:375:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -380, w5, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -36 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:376:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 289, w6, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -22 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:377:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 182, w7, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -60 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:378:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 480, w8, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 36 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:379:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -292, w9, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -62 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:380:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 497, w10, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 63 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:381:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -505, w11, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 56 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:382:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -449, w12, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 27 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:383:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -220, w13, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -31 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:384:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 249, w14, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 26 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:385:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -215, w15, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -54 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:386:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 432, w16, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 51 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:387:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -413, w17, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 34 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:388:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -279, w18, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -53 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 431, w19, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:389:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 431, w19, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 14 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 431, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -118, w20, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:390:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -118, w20, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -52 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 431, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -118, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 416, w21, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:391:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 416, w21, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -14 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 431, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -118, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 416, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 115, w22, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:392:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 115, w22, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -7 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 431, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -118, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 416, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 115, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 60, w23, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:393:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 60, w23, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -15 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 431, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -118, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 416, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 115, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 60, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 122, w24, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:394:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 122, w24, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 19 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 431, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -118, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 416, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 115, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 60, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 122, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -155, w25, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:395:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -155, w25, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 63 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 431, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -118, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 416, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 115, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 60, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 122, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -155, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -504, w26, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:396:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -504, w26, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -47 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 431, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -118, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 416, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 115, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 60, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 122, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -155, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -504, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 379, w27, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:397:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 379, w27, t3);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -39 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 431, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -118, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 416, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 115, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 60, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 122, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -155, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -504, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 379, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 318, w28, t0);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:398:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 318, w28, t0);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -17 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 431, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -118, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 416, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 115, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 60, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 122, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -155, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -504, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 379, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 318, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 139, w29, t1);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:399:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 139, w29, t1);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript -32 is below array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 431, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -118, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 416, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 115, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 60, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 122, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -155, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -504, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 379, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 318, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 139, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 258, w30, t2);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:400:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", 258, w30, t2);
^~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:37:39: warning: array subscript 20 is above array bounds of 'long long unsigned int[2]' [-Warray-bounds]
: "r" (base), "r" (((char*)out) - offset) \
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", %d($"#RS") out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
offset, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_LDI(instruction, imm, WD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", "#imm"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", "#imm" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_MOVE(instruction, offset, WD, WS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.w $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#WS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#WS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_INSERT(instruction, offset1, offset2, WD, pos, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WD", "#offset1"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset2"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD"["#pos"], $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD"[%u], $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pos, out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_FILL(instruction, offset, WD, RS) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"lw $"#RS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#WD", $"#RS"\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"st.d $"#WD", 0($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (out) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RS, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#WD", $"#RS" out: %016llx%016llx\n", \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
out[1], out[0]); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
#define TEST_COPY(instruction, offset, WS, pos, RD) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsigned int outi; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ volatile ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set push;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set noreorder\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t0, %0\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"ld.b $"#WS", "#offset"($t0)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
instruction" $"#RD", $"#WS"["#pos"]\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"move $t5, %1\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"sw $"#RD", 0($t5)\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
".set pop;\n\t" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "r" (base), "r" (&outi) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: "t0", #RD, "memory" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(instruction" $"#RD", $"#WS"[%u] out: %x\n", pos, outi); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~
int main(int argc, char **argv) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if defined(__mips_msa)
~~~~~~~~~~~~~~~~~~~~~~~
int i;
~~~~~~
base = data + 512;
~~~~~~~~~~~~~~~~~~
for (i = 0; i < sizeof(data); i++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data[i] = (char)i + 0xa0;
~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -352, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 408, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -40, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -472, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 48, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -272, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -184, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 448, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -64, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -8, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 368, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 80, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 296, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 328, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 416, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 248, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 384, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -512, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -200, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 184, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -376, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", 64, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -368, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.d", -216, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -468, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 260, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -324, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -428, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -200, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -80, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -96, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -256, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 376, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 416, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -396, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -500, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 128, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 200, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 316, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -52, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 104, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 52, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 40, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -20, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -72, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -408, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -16, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 244, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 292, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -308, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", 380, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -152, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -164, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -348, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.w", -280, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -118, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 428, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -90, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -32, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 346, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 386, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 212, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 292, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 94, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 226, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -92, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 32, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 368, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 404, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -426, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -102, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -128, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 16, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 4, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 370, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -252, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -448, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -382, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 148, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -98, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", -216, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 382, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.h", 298, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -298, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -217, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -245, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -68, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -383, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -369, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 341, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 2, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 55, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -168, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 299, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -425, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -312, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -337, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 98, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -449, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 191, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -410, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 435, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 452, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -112, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 500, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -442, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -475, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -110, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -145, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 420, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", -324, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_LD("ld.b", 69, w31, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w0, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 8, w1, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 88, w2, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 160, w3, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 104, w4, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 344, w5, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w6, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -448, w7, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -336, w8, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 496, w9, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -248, w10, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -464, w11, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -256, w12, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -144, w13, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w14, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -48, w15, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 288, w16, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w17, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 472, w18, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -160, w19, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 424, w20, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -184, w21, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -488, w22, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -192, w23, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -480, w24, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -176, w25, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 456, w26, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -216, w27, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -152, w28, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", -120, w29, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 0, w30, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.d", 184, w31, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 408, w0, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -420, w1, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -164, w2, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 8, w3, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w4, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w5, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 76, w6, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -400, w7, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w8, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 348, w9, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -348, w10, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 464, w11, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -304, w12, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -312, w13, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -88, w14, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 500, w15, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 204, w16, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -124, w17, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -168, w18, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 116, w19, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 212, w20, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -144, w21, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 444, w22, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 244, w23, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 196, w24, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 392, w25, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -480, w26, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -468, w27, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -232, w28, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 36, w29, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", 228, w30, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.w", -332, w31, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 134, w0, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -444, w1, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 190, w2, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 68, w3, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 282, w4, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -244, w5, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 184, w6, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -26, w7, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -408, w8, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 348, w9, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -70, w10, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -198, w11, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -474, w12, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 354, w13, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -206, w14, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w15, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -278, w16, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 140, w17, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -152, w18, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 448, w19, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 510, w20, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -218, w21, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 182, w22, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 196, w23, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -334, w24, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 218, w25, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 242, w26, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -52, w27, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -256, w28, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", -40, w29, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 130, w30, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.h", 390, w31, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 30, w0, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -192, w1, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -52, w2, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -198, w3, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 77, w4, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -380, w5, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 289, w6, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 182, w7, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 480, w8, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -292, w9, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 497, w10, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -505, w11, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -449, w12, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -220, w13, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 249, w14, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -215, w15, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 432, w16, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -413, w17, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -279, w18, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 431, w19, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -118, w20, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 416, w21, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 115, w22, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 60, w23, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 122, w24, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -155, w25, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -504, w26, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 379, w27, t3);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 318, w28, t0);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 139, w29, t1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", 258, w30, t2);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST_ST("st.b", -163, w31, t3);
~~~~~~~~~~~~~~~~~~~~
../../../../valgrind-3.14.0/none/tests/mips32/msa_data_transfer.c:401:4: note: in expansion of macro 'TEST_ST'
TEST_ST("st.b", -163, w31, t3);
^~~~~~~
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -mmsa -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o msa_data_transfer msa_data_transfer-msa_data_transfer.o
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux-musl/../../libexec/mips-yoe-linux-musl/gcc/mips-yoe-linux-musl/8.2.0/ld: warning: msa_data_transfer uses -mdouble-float (set by TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/lib/../lib/crt1.o), msa_data_transfer-msa_data_transfer.o uses -mgp32 -mfp64
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -mmsa -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o msa_fpu-msa_fpu.o `test -f 'msa_fpu.c' || echo '../../../../valgrind-3.14.0/none/tests/mips32/'`msa_fpu.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -mmsa -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o msa_fpu msa_fpu-msa_fpu.o
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux-musl/../../libexec/mips-yoe-linux-musl/gcc/mips-yoe-linux-musl/8.2.0/ld: warning: msa_fpu uses -mdouble-float (set by TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/lib/../lib/crt1.o), msa_fpu-msa_fpu.o uses -mgp32 -mfp64
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -mmsa -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o msa_logical_and_shift-msa_logical_and_shift.o `test -f 'msa_logical_and_shift.c' || echo '../../../../valgrind-3.14.0/none/tests/mips32/'`msa_logical_and_shift.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -mmsa -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o msa_logical_and_shift msa_logical_and_shift-msa_logical_and_shift.o
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux-musl/../../libexec/mips-yoe-linux-musl/gcc/mips-yoe-linux-musl/8.2.0/ld: warning: msa_logical_and_shift uses -mdouble-float (set by TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/lib/../lib/crt1.o), msa_logical_and_shift-msa_logical_and_shift.o uses -mgp32 -mfp64
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/mips32 -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -mmsa -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o msa_shuffle-msa_shuffle.o `test -f 'msa_shuffle.c' || echo '../../../../valgrind-3.14.0/none/tests/mips32/'`msa_shuffle.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -mmsa -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o msa_shuffle msa_shuffle-msa_shuffle.o
TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux-musl/../../libexec/mips-yoe-linux-musl/gcc/mips-yoe-linux-musl/8.2.0/ld: warning: msa_shuffle uses -mdouble-float (set by TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot/usr/lib/../lib/crt1.o), msa_shuffle-msa_shuffle.o uses -mgp32 -mfp64
make[5]: 'unaligned_load_store' is up to date.
make[5]: 'test_fcsr' is up to date.
make[5]: 'test_math' is up to date.
make[5]: 'round_fpu64' is up to date.
make[5]: 'fpu_branches' is up to date.
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/mips32'
make check-local
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/mips32'
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/mips32'
make[4]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/mips32'
Making check in linux
make[4]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/linux'
make blockfault brk-overflow1 brk-overflow2 clonev mremap mremap2 mremap3 mremap4 mremap5 mremap6 pthread-stack stack-overflow membarrier
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/linux'
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o blockfault.o ../../../../valgrind-3.14.0/none/tests/linux/blockfault.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o blockfault blockfault.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o brk-overflow1.o ../../../../valgrind-3.14.0/none/tests/linux/brk-overflow1.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o brk-overflow1 brk-overflow1.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o brk-overflow2.o ../../../../valgrind-3.14.0/none/tests/linux/brk-overflow2.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o brk-overflow2 brk-overflow2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o clonev.o ../../../../valgrind-3.14.0/none/tests/linux/clonev.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o clonev clonev.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mremap.o ../../../../valgrind-3.14.0/none/tests/linux/mremap.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mremap mremap.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mremap2.o ../../../../valgrind-3.14.0/none/tests/linux/mremap2.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mremap2 mremap2.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mremap3.o ../../../../valgrind-3.14.0/none/tests/linux/mremap3.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mremap3 mremap3.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mremap4.o ../../../../valgrind-3.14.0/none/tests/linux/mremap4.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mremap4 mremap4.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mremap5.o ../../../../valgrind-3.14.0/none/tests/linux/mremap5.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mremap5 mremap5.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o mremap6.o ../../../../valgrind-3.14.0/none/tests/linux/mremap6.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o mremap6 mremap6.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o pthread-stack.o ../../../../valgrind-3.14.0/none/tests/linux/pthread-stack.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o pthread-stack pthread-stack.o -lpthread
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o stack_overflow-stack-overflow.o `test -f 'stack-overflow.c' || echo '../../../../valgrind-3.14.0/none/tests/linux/'`stack-overflow.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -Wno-uninitialized -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o stack-overflow stack_overflow-stack-overflow.o
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../../valgrind-3.14.0/none/tests/linux -I../../.. -I../../../../valgrind-3.14.0 -I../../../../valgrind-3.14.0/include -I../../../../valgrind-3.14.0/coregrind -I../../../include -I../../../../valgrind-3.14.0/VEX/pub -I../../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o membarrier.o ../../../../valgrind-3.14.0/none/tests/linux/membarrier.c
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--as-needed -o membarrier membarrier.o
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/linux'
make check-local
make[5]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/linux'
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
make[5]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/linux'
make[4]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests/linux'
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none/tests'
make[2]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/none'
Making check in helgrind
make[2]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/helgrind'
Making check in .
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/helgrind'
mkdir -p ../.in_place; \
for f in helgrind-mips32-linux vgpreload_helgrind-mips32-linux.so ; do \
rm -f ../.in_place/$f; \
ln -f -s ../helgrind/$f ../.in_place; \
done
for f in ; do \
if [ ! -e $f.dSYM -o $f -nt $f.dSYM ] ; then \
echo "dsymutil $f"; \
dsymutil $f; \
fi; \
done
mkdir -p ../.in_place; \
for f in ; do \
rm -f ../.in_place/$f.dSYM; \
ln -f -s ../helgrind/$f.dSYM ../.in_place; \
done
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/helgrind'
Making check in tests
make[3]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/helgrind/tests'
make annotate_hbefore cond_init_destroy cond_timedwait_invalid cond_timedwait_test free_is_write hg01_all_ok hg02_deadlock hg03_inherit hg04_race hg05_race2 hg06_readshared locked_vs_unlocked1 locked_vs_unlocked2 locked_vs_unlocked3 pth_destroy_cond shmem_abits stackteardown t2t tc01_simple_race tc02_simple_tls tc03_re_excl tc04_free_lock tc05_simple_race tc06_two_races tc07_hbl1 tc08_hbl2 tc09_bad_unlock tc10_rec_lock tc11_XCHG tc12_rwl_trivial tc13_laog1 tc14_laog_dinphils tc15_laog_lockdel tc16_byterace tc17_sembar tc18_semabuse tc19_shadowmem tc21_pthonce tc23_bogus_condwait tc24_nonzero_sem tls_threads tc22_exit_w_lock bar_bad bar_trivial bug322621 tc20_verifywrap annotate_rwlock
make[4]: Entering directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/helgrind/tests'
mips-yoe-linux-musl-gcc -meb -mabi=32 -mhard-float -march=mips32r2 -no-pie -fno-PIE --sysroot=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../valgrind-3.14.0/helgrind/tests -I../.. -I../../../valgrind-3.14.0 -I../../../valgrind-3.14.0/include -I../../../valgrind-3.14.0/coregrind -I../../include -I../../../valgrind-3.14.0/VEX/pub -I../../VEX/pub -DVGA_mips32=1 -DVGO_linux=1 -DVGP_mips32_linux=1 -DVGPV_mips32_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -O2 -finline-functions -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-align -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wlogical-op -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0=/usr/src/debug/valgrind/3.14.0-r0 -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/recipe-sysroot-native= -c -o annotate_hbefore-annotate_hbefore.o `test -f 'annotate_hbefore.c' || echo '../../../valgrind-3.14.0/helgrind/tests/'`annotate_hbefore.c
../../../valgrind-3.14.0/helgrind/tests/annotate_hbefore.c:226:7: warning: no previous prototype for 'do_acasW' [-Wmissing-prototypes]
UWord do_acasW ( UWord* addr, UWord expected, UWord nyu )
^~~~~~~~
../../../valgrind-3.14.0/helgrind/tests/annotate_hbefore.c:290:6: warning: no previous prototype for 'atomic_incW' [-Wmissing-prototypes]
void atomic_incW ( UWord* w )
^~~~~~~~~~~
../../../valgrind-3.14.0/helgrind/tests/annotate_hbefore.c:337:6: warning: no previous prototype for 'delayXms' [-Wmissing-prototypes]
void delayXms ( int i )
^~~~~~~~
../../../valgrind-3.14.0/helgrind/tests/annotate_hbefore.c:351:6: warning: no previous prototype for 'do_wait' [-Wmissing-prototypes]
void do_wait ( UWord* w )
^~~~~~~
../../../valgrind-3.14.0/helgrind/tests/annotate_hbefore.c:360:6: warning: no previous prototype for 'do_signal' [-Wmissing-prototypes]
void do_signal ( UWord* w )
^~~~~~~~~
../../../valgrind-3.14.0/helgrind/tests/annotate_hbefore.c:368:7: warning: no previous prototype for 'thread_fn1' [-Wmissing-prototypes]
void* thread_fn1 ( void* arg )
^~~~~~~~~~
../../../valgrind-3.14.0/helgrind/tests/annotate_hbefore.c:379:7: warning: no previous prototype for 'thread_fn2' [-Wmissing-prototypes]
void* thread_fn2 ( void* arg )
^~~~~~~~~~
/tmp/cce22iiw.s: Assembler messages:
/tmp/cce22iiw.s:446: Error: symbol `exit_0' is already defined
/tmp/cce22iiw.s:448: Error: symbol `exit' is already defined
/tmp/cce22iiw.s:915: Error: symbol `exit_0' is already defined
/tmp/cce22iiw.s:917: Error: symbol `exit' is already defined
Makefile:1330: recipe for target 'annotate_hbefore-annotate_hbefore.o' failed
make[4]: *** [annotate_hbefore-annotate_hbefore.o] Error 1
make[4]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/helgrind/tests'
Makefile:1469: recipe for target 'check-am' failed
make[3]: *** [check-am] Error 2
make[3]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/helgrind/tests'
Makefile:1350: recipe for target 'check-recursive' failed
make[2]: *** [check-recursive] Error 1
make[2]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build/helgrind'
Makefile:834: recipe for target 'check-recursive' failed
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build'
Makefile:1128: recipe for target 'check' failed
make: *** [check] Error 2
make: Leaving directory 'TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/build'
ERROR: oe_runmake failed
WARNING: TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/temp/run.do_compile_ptest_base.1661:1 exit 1 from 'exit 1'
ERROR: Function failed: do_compile_ptest_base (log file is located at TOPDIR/build/tmp/work/mips32r2-yoe-linux-musl/valgrind/3.14.0-r0/temp/log.do_compile_ptest_base.1661)