1
2
3
4
5#include <stdio.h>
6#include <inttypes.h>
7#include <assert.h>
8
9int main()
10{
11 int32_t tlo = 12207031, thi = 305175781;
12 int32_t tlo1 = 32452867, thi1 = 49979687;
13 int32_t flo, fhi, flo1, fhi1;
14
15
16 __asm__ __volatile__ (
17 " mtlo %4\n"
18 " mthi %5\n"
19 " mtlo1 %6\n"
20 " mthi1 %7\n"
21 " move %0, $0\n"
22 " move %1, $0\n"
23 " move %2, $0\n"
24 " move %3, $0\n"
25 " mflo %0\n"
26 " mfhi %1\n"
27 " mflo1 %2\n"
28 " mfhi1 %3\n"
29 : "=r" (flo), "=r" (fhi),
30 "=r" (flo1), "=r" (fhi1)
31 : "r" (tlo), "r" (thi),
32 "r" (tlo1), "r" (thi1));
33
34 assert(flo == 12207031);
35 assert(fhi == 305175781);
36 assert(flo1 == 32452867);
37 assert(fhi1 == 49979687);
38
39 return 0;
40}
41