test_fcsr.c revision 436e89c602e787e7a27dd6624b09beed41a0da8a
1d19ac0c75a019273e03922e2252ed262578a43d1Bill Wendling#include <stdio.h>
2602890dd8ef53c6e8d60a2752b97940f7a58de1aBill Wendling
3602890dd8ef53c6e8d60a2752b97940f7a58de1aBill Wendlingint main ()
4602890dd8ef53c6e8d60a2752b97940f7a58de1aBill Wendling{
546c38aff89c36a95bc9e61c6133056a5de9e5e59Jim Grosbach   long out [] = {0, 0};
6602890dd8ef53c6e8d60a2752b97940f7a58de1aBill Wendling   __asm__ volatile("cfc1       $a1,   $31"                 "\n\t"
7602890dd8ef53c6e8d60a2752b97940f7a58de1aBill Wendling                    "dli        $t0,   0x405ee0a3d70a3d71"  "\n\t"
846c38aff89c36a95bc9e61c6133056a5de9e5e59Jim Grosbach                    "dmtc1      $t0,   $f0"                 "\n\t"
9af2b573614c7d853879ff24eb9a86d1c36acc198Bill Wendling                    "ctc1       $zero, $31"                 "\n\t"
10af2b573614c7d853879ff24eb9a86d1c36acc198Bill Wendling                    "round.w.d  $f0,   $f0"                 "\n\t"
1146c38aff89c36a95bc9e61c6133056a5de9e5e59Jim Grosbach                    "cfc1       $a2,   $31"                 "\n\t"
12849f2e381e4e83dc4f60e4a1fe6e6bb47bde8248Bill Wendling                    "sd         $a2,   0(%0)"               "\n\t"
13849f2e381e4e83dc4f60e4a1fe6e6bb47bde8248Bill Wendling                    "dli        $t0,   0x3ff0000000000000"  "\n\t"
1446c38aff89c36a95bc9e61c6133056a5de9e5e59Jim Grosbach                    "dmtc1      $t0,   $f0"                 "\n\t"
1546c38aff89c36a95bc9e61c6133056a5de9e5e59Jim Grosbach                    "ctc1       $zero, $31"                 "\n\t"
1618901d63bf0deb117bd7a1ad69b25faa422ce378Owen Anderson                    "round.w.d  $f0,   $f0"                 "\n\t"
17d19ac0c75a019273e03922e2252ed262578a43d1Bill Wendling                    "cfc1       $a2,   $31"                 "\n\t"
18d19ac0c75a019273e03922e2252ed262578a43d1Bill Wendling                    "sd         $a2,   8(%0)"               "\n\t"
19d19ac0c75a019273e03922e2252ed262578a43d1Bill Wendling                    "ctc1       $a1,   $31"                 "\n\t"
20d19ac0c75a019273e03922e2252ed262578a43d1Bill Wendling                    :
2146c38aff89c36a95bc9e61c6133056a5de9e5e59Jim Grosbach                    : "r" (out)
2246c38aff89c36a95bc9e61c6133056a5de9e5e59Jim Grosbach                    : "a1", "a2", "t0", "$f0"
2346c38aff89c36a95bc9e61c6133056a5de9e5e59Jim Grosbach                   );
245cbbf68e35a053c904548564da13d4a8596f988bBill Wendling   printf("FCSR::1: 0x%lx, 2: 0x%lx\n", out[0], out[1]);
255cbbf68e35a053c904548564da13d4a8596f988bBill Wendling   return 0;
265cbbf68e35a053c904548564da13d4a8596f988bBill Wendling}
2746c38aff89c36a95bc9e61c6133056a5de9e5e59Jim Grosbach