mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-09 13:18:15 +00:00
This is a set of mips64 programs that test mips64 instruction set. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13410
135 lines
2.9 KiB
C
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;
|
|
}
|