Files
ftmemsim-valgrind/none/tests/mips64/load_store.c
Petar Jovanovic 58c1c98db4 mips64: update tests for N32 ABI
Fix n32/n64 types mismatch in none, memcheck and helgrind tests.

BZ issue - #345763.

Contributed by:
  Dimitrije Nikolic, Aleksandar Rikalo, Tamara Vlahovic.
2018-06-14 17:40:08 +00:00

142 lines
3.1 KiB
C

#include <stdio.h>
#include "pub_core_basics.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);
#if (__mips_isa_rev < 6)
/* 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);
#endif
/* 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);
#if (__mips_isa_rev < 6)
/* 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);
#endif
/* 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);
#if (__mips_isa_rev < 6)
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);
#endif
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();
#if (__mips_isa_rev < 6)
/* 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);
#endif
return 0;
}