<html>
<body>
  <div id="body" style="background-color:#ffffff;" >
<table cellspacing="0" cellpadding="0" border="0" rules="cols">
<tr class="head" style="border-bottom-width:1px;border-bottom-style:solid;" ><td class="headtd" style="padding:0;padding-top:.2em;" colspan="4">Commit in <b><tt>lxdream</tt></b></td></tr>
<tr><td><tt>src/sh4/<a href="#file1">sh4core.in</a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+1</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-1</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">12fdf3aafcd4 -> ba3df0bf2c23</td></tr>
<tr class="alt" style=";" ><td><tt>test/<a href="#file2">Makefile.in</a></tt></td><td id="addedalt" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ccf7cc;" align="right">+2</td><td></td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">12fdf3aafcd4 -> ba3df0bf2c23</td></tr>
<tr><td><tt>test/sh4/<a href="#file3"><span id="added" style="background-color:#ddffdd;" >fsrra.s</span></a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+85</td><td></td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" align="right" nowrap="nowrap">added ba3df0bf2c23</td></tr>
<tr class="alt" style=";" ><td><tt>        /<a href="#file4">testsh4.c</a></tt></td><td id="addedalt" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ccf7cc;" align="right">+6</td><td></td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">12fdf3aafcd4 -> ba3df0bf2c23</td></tr>
<tr><td></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+94</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-1</td><td></td></tr>
</table>
<small id="info" style="color: #888888;" >1 added + 3 modified, total 4 files</small><br />
<pre class="comment" style="white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;white-space:pre-wrap;word-wrap:break-word;padding:4px;border:1px dashed #000000;background-color:#ffffdd;" >
FSRRA uses higher precision for intermediate results - change sqrtf to sqrt.
</pre>
<hr /><a name="file1" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/src/sh4</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>sh4core.in</b></big> <small id="info" style="color: #888888;" >12fdf3aafcd4 -> ba3df0bf2c23</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/sh4/sh4core.in
+++ lxdream/src/sh4/sh4core.in
@@ -1273,7 +1273,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > FSRRA FRn {:
     CHECKFPUEN();
     if( !IS_FPU_DOUBLEPREC() ) {
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-   FR(FRn) = 1.0/sqrt<span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >f</span>(FR(FRn));
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+     FR(FRn) = 1.0/sqrt(FR(FRn));
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     }
 :}
 FIPR FVm, FVn {:
</pre></div>
<hr /><a name="file2" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/test</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>Makefile.in</b></big> <small id="info" style="color: #888888;" >12fdf3aafcd4 -> ba3df0bf2c23</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/test/Makefile.in
+++ lxdream/test/Makefile.in
@@ -96,6 +96,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >       sh4/add.so sh4/addc.so sh4/addv.so sh4/and.so sh4/andi.so \
         sh4/bf.so sh4/bsr.so sh4/bt.so sh4/cmp.so sh4/cmpstr.so \
         sh4/div0.so sh4/div1.so sh4/float.so sh4/fmov.so sh4/ftrc.so \
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+      sh4/fsrra.so \
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     sh4/ldc.so sh4/mac.so \
         sh4/rot.so sh4/shl.so sh4/shld.so sh4/sub.so sh4/subc.so sh4/subv.so \
         sh4/trapa.so sh4/tas.so sh4/xtrct.so \
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -190,6 +191,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >         lib.c lib.h math.s pvr.c pvr.h rendload.c sh4/add.s sh4/addc.s \
         sh4/addv.s sh4/and.s sh4/andi.s sh4/bf.s sh4/bsr.s sh4/bt.s sh4/cmp.s \
         sh4/cmpstr.s sh4/div0.s sh4/div1.s sh4/excslot.s sh4/float.s sh4/fmov.s sh4/ftrc.s \
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+        sh4/fsrra.s \
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >         sh4/inc.s sh4/mac.s sh4/ldc.s sh4/rot.s sh4/shl.s sh4/shld.s sh4/sub.s sh4/subc.s \
         sh4/subv.s sh4/tas.s sh4/testsh4.c sh4/tlb.s sh4/vmexit.s sh4/trapa.s sh4/undef.s \
         sh4/xtrct.s sh4/utlb.c sh4/utlb.h sh4/testutlb.s testdata.c testdata.h testdisp.c \
</pre></div>
<hr /><a name="file3" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span id="added" class="pathname" style="font-family:monospace; float:right; background-color:#ddffdd;" >lxdream/test/sh4</span><br />
<div id="added" class="fileheader" style="margin-bottom:.5em; background-color:#ddffdd;" ><big><b>fsrra.s</b></big> <small id="info" style="color: #888888;" >added at ba3df0bf2c23</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/test/sh4/fsrra.s
+++ lxdream/test/sh4/fsrra.s
@@ -0,0 +1,85 @@
</small></pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+.section .text
+.include "sh4/inc.s"
+
+.global _test_fsrra
+_test_fsrra:
+       start_test
+       mov.l r11, @-r15
+       mov.l test_fsrra_data_k, r11
+       
+test_fsrra_loop:
+       mov.l test_fsrra_data_end_k, r4
+       cmp/eq r11, r4
+       bt test_fsrra_end
+       add #1, r12
+
+       fmov @r11+, fr5
+       fsrra fr5
+        flds fr5, fpul
+        sts fpul, r5
+       mov.l @r11+, r4
+       cmp/eq r4, r5
+       bt test_fsrra_loop
+       
+       mov.l test_fsrra_error_k, r3
+       jsr @r3
+       fail test_fsrra_str_k
+       bra test_fsrra_loop
+       nop
+
+test_fsrra_end:
+       mov.l @r15+, r11
+       end_test test_fsrra_str_k
+
+       .align 4        
+test_fsrra_data_k:
+       .long test_fsrra_data
+test_fsrra_data:
+test_fsrra_data_1:
+       .long 0x3F800000
+       .long 0x3F800000
+
+       .long 0x43214321
+       .long 0x3da14613
+
+       .long 0x3B0D693E
+       .long 0x41ac38ca
+
+       .long 0x3B5D87B7
+       .long 0x41899934
+       
+        .long 0x41899934
+       .long 0x3e76e8e3
+
+#      .long 0xFFFFFFF0
+#      .long 0x7fbfffff
+
+       .long 0x00000040
+       .long 0x633504f3
+
+       .long 0xFFFFFF80
+       .long 0xffffff80
+
+       .long 0x00000001
+       .long 0x64b504f3
+
+       .long 0x98765432
+       .long 0xffc00000
+
+       .long 0x64b504f3
+       .long 0x2cd744fd
+
+       .long 0x2cd744fd
+       .long 0x48c5672a
+       
+test_fsrra_data_end:   
+       .align 4
+test_fsrra_data_end_k:
+       .long test_fsrra_data_end       
+test_fsrra_str_k:
+       .long test_fsrra_str
+test_fsrra_error_k:
+       .long _test_print_float_error
+test_fsrra_str:
+       .string "FSRRA"
+       
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >\ No newline at end of file
</small></pre></div>
<hr /><a name="file4" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/test/sh4</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>testsh4.c</b></big> <small id="info" style="color: #888888;" >12fdf3aafcd4 -> ba3df0bf2c23</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/test/sh4/testsh4.c
+++ lxdream/test/sh4/testsh4.c
@@ -4,6 +4,11 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > int total_tests = 0;
 int total_fails = 0;
 
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+void test_print_float_error( int expect, int actual )
+{
+    fprintf( stderr, "Error: expected 0x%08x but was 0x%08x\n", expect, actual );
+}
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > int test_print_result( char *testname, int failed, int total )
 {
     fprintf( stdout, "%s: %d/%d tests passed\n", testname, total-failed, total );
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -83,6 +88,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     test_div0();
     test_div1();
     test_float();
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+    test_fsrra();
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     test_fmov();
     test_ftrc();
     test_ldc();
</pre></div>
<center><small>Chaos Theory</small></center>
</div></body></html>