blob: 6bb03a0a42faa38d91951c48947a64ebdb8fa251 [file] [log] [blame]
Elliott Hughesa0664b92017-04-18 17:46:52 -07001#if defined(__mips_hard_float)
2
dejanj4164a812013-09-18 10:08:23 +00003#include <stdio.h>
4
5int main ()
6{
7 int out [] = {0, 0};
dejanj24f0c3a2014-02-19 11:57:22 +00008 unsigned long long in [] = {0x405EE0A3D70A3D71ULL, 0x3FF0000000000000ULL};
dejanj4164a812013-09-18 10:08:23 +00009 __asm__ volatile("cfc1 $a1, $31" "\n\t"
dejanj24f0c3a2014-02-19 11:57:22 +000010 "ldc1 $f0, 0(%0)" "\n\t"
dejanj4164a812013-09-18 10:08:23 +000011 "ctc1 $zero, $31" "\n\t"
12 "round.w.d $f0, $f0" "\n\t"
13 "cfc1 $a2, $31" "\n\t"
dejanj24f0c3a2014-02-19 11:57:22 +000014 "sw $a2, 0(%1)" "\n\t"
15 "ldc1 $f0, 8(%0)" "\n\t"
dejanj4164a812013-09-18 10:08:23 +000016 "ctc1 $zero, $31" "\n\t"
17 "round.w.d $f0, $f0" "\n\t"
18 "cfc1 $a2, $31" "\n\t"
dejanj24f0c3a2014-02-19 11:57:22 +000019 "sw $a2, 4(%1)" "\n\t"
dejanj4164a812013-09-18 10:08:23 +000020 "ctc1 $a1, $31" "\n\t"
21 :
dejanj24f0c3a2014-02-19 11:57:22 +000022 : "r" (in), "r" (out)
dejanj4164a812013-09-18 10:08:23 +000023 : "a1", "a2", "t0", "$f0", "$f1"
24 );
25 printf("FCSR::1: 0x%x, 2: 0x%x\n", out[0], out[1]);
26 return 0;
27}
Elliott Hughesa0664b92017-04-18 17:46:52 -070028#else
29int main() {
30 return 0;
31}
32#endif