• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <stdio.h>
2 #include "macro_load_store.h"
3 
main()4 int main()
5 {
6    int i;
7    int s1 = sizeof(int);
8    int s2 = sizeof(unsigned long long);
9    init_reg_val2();
10    /**********************************************************************/
11    /*-------------------------------LOAD---------------------------------*/
12    /**********************************************************************/
13    /* lb */
14    for (i = 0; i < N*s1; i++)
15       TEST1("lb", i, reg_val1);
16 
17    for (i = 0; i < N*s2; i++)
18       TEST1("lb", i, reg_val2);
19 
20    /* lbu */
21    for (i = 0; i < N*s1; i++)
22       TEST1("lbu", i, reg_val1);
23 
24    for (i = 0; i < N*s2; i++)
25       TEST1("lbu", i, reg_val2);
26 
27    /* ld */
28    for (i = 0; i < N*s1; i = i+8)
29       TEST1("ld", i, reg_val1);
30 
31    for (i = 0; i < N*s2; i = i+8)
32       TEST1("ld", i, reg_val2);
33 
34    /* ldl */
35    for (i = 0; i < N*s1; i++)
36       TEST1("ldl", i, reg_val1);
37 
38    for (i = 0; i < N*s2; i++)
39       TEST1("ldl", i, reg_val2);
40 
41    /* ldr */
42    for (i = 0; i < N*s1; i++)
43       TEST1("ldr", i, reg_val1);
44 
45    for (i = 0; i < N*s2; i++)
46       TEST1("ldr", i, reg_val2);
47 
48    /* lh */
49    for (i = 0; i < N*s1; i = i+2)
50       TEST1("lh", i, reg_val1);
51 
52    for (i = 0; i < N*s2; i = i+2)
53       TEST1("lh", i, reg_val2);
54 
55    /* lhu */
56    for (i = 0; i < N*s1; i = i+2)
57       TEST1("lhu", i, reg_val1);
58 
59    for (i = 0; i < N*s2; i = i+2)
60       TEST1("lhu", i, reg_val2);
61 
62    /* lw */
63    for (i = 0; i < N*s1; i = i+4)
64       TEST1("lw", i, reg_val1);
65 
66    for (i = 0; i < N*s2; i = i+4)
67       TEST1("lw", i, reg_val2);
68 
69    /* lwl */
70    for (i = 0; i < N*s1; i++)
71       TEST1("lwl", i, reg_val1);
72 
73    for (i = 0; i < N*s2; i++)
74       TEST1("lwl", i, reg_val2);
75 
76    /* lwr */
77    for (i = 0; i < N*s1; i++)
78       TEST1("lwr", i, reg_val1);
79 
80    for (i = 0; i < N*s2; i++)
81       TEST1("lwr", i, reg_val2);
82 
83    /* lwu */
84    for (i = 0; i < N*s1; i = i+4)
85       TEST1("lwu", i, reg_val1);
86 
87    for (i = 0; i < N*s2; i = i+4)
88       TEST1("lwu", i, reg_val2);
89 
90    /**********************************************************************/
91    /*-------------------------------STORE--------------------------------*/
92    /**********************************************************************/
93    init_reg_val_zero();
94    /* sb */
95    for (i = 0; i < (N-1)*s2; i++)
96       TEST2("sb", i);
97 
98    init_reg_val_zero();
99    /* sd */
100    for (i = 0; i < (N-1)*s2; i = i+8)
101       TEST2("sd", i);
102 
103    init_reg_val_zero();
104    /* sdl */
105    for (i = 0; i < (N-1)*s2; i++)
106       TEST2("sdl", i);
107 
108    init_reg_val_zero();
109    /* sdr */
110    for (i = 8; i < (N-1)*s2; i++)
111       TEST2("sdr", i);
112 
113    init_reg_val_zero();
114    /* sh */
115    for (i = 0; i < (N-1)*s2; i = i+2)
116       TEST2("sh", i);
117 
118    init_reg_val_zero();
119    /* sw */
120    for (i = 0; i < (N-1)*s2; i = i+4)
121       TEST2("sw", i);
122 
123    init_reg_val_zero();
124    /* swl */
125    for (i = 4; i < (N-1)*s2; i++)
126       TEST2("swl", i);
127 
128    init_reg_val_zero();
129    /* swr */
130    for (i = 4; i < (N-1)*s2; i++)
131       TEST2("swr", i);
132 
133    return 0;
134 }
135