Files
ftmemsim-valgrind/none/tests/mips64/load_store.c
Petar Jovanovic d7adfcc772 mips64: set of mips64 specific tests
This is a set of mips64 programs that test mips64 instruction set.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13410
2013-05-28 16:51:27 +00:00

135 lines
2.9 KiB
C

#include <stdio.h>
#include "macro_load_store.h"
int main()
{
int i;
int s1 = sizeof(int);
int s2 = sizeof(unsigned long long);
init_reg_val2();
/**********************************************************************/
/*-------------------------------LOAD---------------------------------*/
/**********************************************************************/
/* lb */
for (i = 0; i < N*s1; i++)
TEST1("lb", i, reg_val1);
for (i = 0; i < N*s2; i++)
TEST1("lb", i, reg_val2);
/* lbu */
for (i = 0; i < N*s1; i++)
TEST1("lbu", i, reg_val1);
for (i = 0; i < N*s2; i++)
TEST1("lbu", i, reg_val2);
/* ld */
for (i = 0; i < N*s1; i = i+8)
TEST1("ld", i, reg_val1);
for (i = 0; i < N*s2; i = i+8)
TEST1("ld", i, reg_val2);
/* ldl */
for (i = 0; i < N*s1; i++)
TEST1("ldl", i, reg_val1);
for (i = 0; i < N*s2; i++)
TEST1("ldl", i, reg_val2);
/* ldr */
for (i = 0; i < N*s1; i++)
TEST1("ldr", i, reg_val1);
for (i = 0; i < N*s2; i++)
TEST1("ldr", i, reg_val2);
/* lh */
for (i = 0; i < N*s1; i = i+2)
TEST1("lh", i, reg_val1);
for (i = 0; i < N*s2; i = i+2)
TEST1("lh", i, reg_val2);
/* lhu */
for (i = 0; i < N*s1; i = i+2)
TEST1("lhu", i, reg_val1);
for (i = 0; i < N*s2; i = i+2)
TEST1("lhu", i, reg_val2);
/* lw */
for (i = 0; i < N*s1; i = i+4)
TEST1("lw", i, reg_val1);
for (i = 0; i < N*s2; i = i+4)
TEST1("lw", i, reg_val2);
/* lwl */
for (i = 0; i < N*s1; i++)
TEST1("lwl", i, reg_val1);
for (i = 0; i < N*s2; i++)
TEST1("lwl", i, reg_val2);
/* lwr */
for (i = 0; i < N*s1; i++)
TEST1("lwr", i, reg_val1);
for (i = 0; i < N*s2; i++)
TEST1("lwr", i, reg_val2);
/* lwu */
for (i = 0; i < N*s1; i = i+4)
TEST1("lwu", i, reg_val1);
for (i = 0; i < N*s2; i = i+4)
TEST1("lwu", i, reg_val2);
/**********************************************************************/
/*-------------------------------STORE--------------------------------*/
/**********************************************************************/
init_reg_val_zero();
/* sb */
for (i = 0; i < (N-1)*s2; i++)
TEST2("sb", i);
init_reg_val_zero();
/* sd */
for (i = 0; i < (N-1)*s2; i = i+8)
TEST2("sd", i);
init_reg_val_zero();
/* sdl */
for (i = 0; i < (N-1)*s2; i++)
TEST2("sdl", i);
init_reg_val_zero();
/* sdr */
for (i = 8; i < (N-1)*s2; i++)
TEST2("sdr", i);
init_reg_val_zero();
/* sh */
for (i = 0; i < (N-1)*s2; i = i+2)
TEST2("sh", i);
init_reg_val_zero();
/* sw */
for (i = 0; i < (N-1)*s2; i = i+4)
TEST2("sw", i);
init_reg_val_zero();
/* swl */
for (i = 4; i < (N-1)*s2; i++)
TEST2("swl", i);
init_reg_val_zero();
/* swr */
for (i = 4; i < (N-1)*s2; i++)
TEST2("swr", i);
return 0;
}