1 #include "io.h"
2 
main(void)3 int main(void)
4 {
5     long long rt;
6     long long achi, acli;
7     long long res;
8 
9     achi = 0x87654321;
10     acli = 0x12345678;
11 
12     res = 0x123456;
13 
14     __asm
15         ("mthi %1, $ac1\n\t"
16          "mtlo %2, $ac1\n\t"
17          "dextr.w %0, $ac1, 0x8\n\t"
18          : "=r"(rt)
19          : "r"(achi), "r"(acli)
20         );
21     if (rt != res) {
22         printf("dextr.w error\n");
23         return -1;
24     }
25 
26     achi = 0x87654321;
27     acli = 0x12345678;
28 
29     res = 0x12345678;
30 
31     __asm
32         ("mthi %1, $ac1\n\t"
33          "mtlo %2, $ac1\n\t"
34          "dextr.w %0, $ac1, 0x0\n\t"
35          : "=r"(rt)
36          : "r"(achi), "r"(acli)
37         );
38     if (rt != res) {
39         printf("dextr.w error\n");
40         return -1;
41     }
42 
43     return 0;
44 }
45