<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/src</tt></b></td></tr>
<tr><td><tt><a href="#file1">bios.c</a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+3</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-3</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">957b76b312cc -> de9ad2c0cf56</td></tr>
<tr class="alt" style=";" ><td><tt>sh4/<a href="#file2">sh4core.in</a></tt></td><td id="addedalt" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ccf7cc;" align="right">+3</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-3</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">957b76b312cc -> de9ad2c0cf56</td></tr>
<tr><td><tt>   /<a href="#file3">sh4trans.c</a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+3</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-2</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">957b76b312cc -> de9ad2c0cf56</td></tr>
<tr><td></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+9</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-8</td><td></td></tr>
</table>
<small id="info" style="color: #888888;" >3 modified 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;" >
Update sh4r.pc before doing the syscall - mainly so that debugging etc
statements come out with a useful PC value rather than the syscall id
</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</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>bios.c</b></big> <small id="info" style="color: #888888;" >957b76b312cc -> de9ad2c0cf56</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/bios.c
+++ lxdream/src/bios.c
@@ -27,6 +27,8 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #include "drivers/cdrom/isoread.h"
 #include "gdrom/gdrom.h"
 
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+gboolean bios_boot_gdrom_disc( void );
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > /* Definitions from KOS */
 #define COMMAND_QUEUE_LENGTH 16
 
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -368,9 +370,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > {
     /* Initialize hardware */
     /* Boot disc if present */
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-    if( bios_boot_gdrom_disc() ) {
-        sh4r.pr = sh4r.pc; /* Set the syscall return address to the bootstrap entry */
-    } else {
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+    if( !bios_boot_gdrom_disc() ) {
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >         dreamcast_stop();
     }
 }
</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/src/sh4</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>sh4core.in</b></big> <small id="info" style="color: #888888;" >957b76b312cc -> de9ad2c0cf56</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/sh4/sh4core.in
+++ lxdream/src/sh4/sh4core.in
@@ -364,10 +364,10 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >     pc = sh4r.pc;
     if( pc > 0xFFFFFF00 ) {
        /* SYSCALL Magic */
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+        sh4r.in_delay_slot = 0;
+        sh4r.pc = sh4r.pr;
+        sh4r.new_pc = sh4r.pc + 2;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >    syscall_invoke( pc );
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-   sh4r.in_delay_slot = 0;
-       pc = sh4r.pc = sh4r.pr;
-       sh4r.new_pc = sh4r.pc + 2;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >         return TRUE;
     }
     CHECKRALIGN16(pc);
</pre></div>
<hr /><a name="file3" /><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>sh4trans.c</b></big> <small id="info" style="color: #888888;" >957b76b312cc -> de9ad2c0cf56</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/sh4/sh4trans.c
+++ lxdream/src/sh4/sh4trans.c
@@ -47,9 +47,10 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 
         if( code == NULL ) {
             if( IS_SYSCALL(sh4r.pc) ) {
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-                syscall_invoke( sh4r.pc );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+                uint32_t pc = sh4r.pc;
+                sh4r.pc = sh4r.pr;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >                 sh4r.in_delay_slot = 0;
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-                sh4r.pc = sh4r.pr;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+                syscall_invoke( pc );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >             }
 
             code = xlat_get_code_by_vma( sh4r.pc );
</pre></div>
<center><small>Chaos Theory</small></center>
</div></body></html>