• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <stdio.h>
2 
3 #define N 15
4 #define SOLL 8 /* size of unsigned long long */
5 
6 unsigned long long memSrc[] = {
7    0x12345658121f1e1f, 0,
8    3,                  -1,
9    0x232f2e2f56568441, 0x242c2b2b1236548c,
10    0xffffffff252a2e2b, 0x262d2d2a4521dddd,
11    0x3f343f3e22222222, 0x3e353d3c41231548,
12    0x363a3c3b45421212, 0x3b373b3a4545afcb,
13    0x454f4e4556984525, 0xfffffffffffffffc,
14    0x474d474c55aaaaaa, 0x4a484a4c65665659
15 };
16 
main()17 int main()
18 {
19    int i, index;
20    unsigned long long outLoad;
21    for (i = 8; i < N * SOLL ; i++) {
22       outLoad = 0;
23       __asm__ __volatile__(
24          "move  $t0, %1"        "\n\t"
25          "move  $t1, %2"        "\n\t"
26          "daddu $t0, $t0, $t1"  "\n\t"
27          "move  $t1, $zero"     "\n\t"
28          "ldl   $t1, 0($t0)"    "\n\t"
29          "ldr   $t1, 7($t0)"    "\n\t"
30          "move  %0,  $t1"       "\n\t"
31          : "=r" (outLoad)
32          : "r" (memSrc), "r" (i)
33          : "t0", "t1"
34       );
35       index = (i / SOLL) % N;
36       printf("i: %d, memSrc[%d]: 0x%llx, outLoad: 0x%llx\n",
37               i, index, memSrc[index], outLoad);
38    }
39    return 0;
40 }
41