<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/gtkui/<a href="#file1">gtk_ctrl.c</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">b072c961c729 -> aacaae9812ea</td></tr>
<tr class="alt" style=";" ><td><tt> /<a href="#file2">gtkcb.c</a></tt></td><td id="addedalt" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ccf7cc;" align="right">+14</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-5</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">b072c961c729 -> aacaae9812ea</td></tr>
<tr><td><tt> /<a href="#file3">gtkui.h</a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+2</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">b072c961c729 -> aacaae9812ea</td></tr>
<tr class="alt" style=";" ><td><tt>src/sh4/<a href="#file4">timer.c</a></tt></td><td id="addedalt" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ccf7cc;" align="right">+46</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-15</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">b072c961c729 -> aacaae9812ea</td></tr>
<tr><td><tt>test/<a href="#file5">Makefile.in</a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+12</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">b072c961c729 -> aacaae9812ea</td></tr>
<tr><td></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+75</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-26</td><td></td></tr>
</table>
<small id="info" style="color: #888888;" >5 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;" >
GTK: Force file extension when creating files
</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/gtkui</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>gtk_ctrl.c</b></big> <small id="info" style="color: #888888;" >b072c961c729 -> aacaae9812ea</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/gtkui/gtk_ctrl.c
+++ lxdream/src/gtkui/gtk_ctrl.c
@@ -113,7 +113,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > }
} else if( devclz == CREATE_VMU_TAG ) {
devclz = NULL;
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- vmu_filename = save_file_dialog( _("Create VMU"), "*.vmu", "VMU Files",
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ vmu_filename = save_file_dialog( _("Create VMU"), "*.vmu", "VMU Files",<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" > ".vmu",</span>
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > CONFIG_VMU_PATH );
if( vmu_filename != NULL ) {
devclz = &vmu_class;
</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/gtkui</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>gtkcb.c</b></big> <small id="info" style="color: #888888;" >b072c961c729 -> aacaae9812ea</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/gtkui/gtkcb.c
+++ lxdream/src/gtkui/gtkcb.c
@@ -76,7 +76,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > }
gchar *save_file_dialog( const char *title, const char *pattern, const char *patname,
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- int initial_dir_key )
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ const char *mandatory_ext, int initial_dir_key )
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > {
GtkWidget *file;
gchar *filename = NULL;
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -97,6 +97,15 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > int result = gtk_dialog_run( GTK_DIALOG(file) );
if( result == GTK_RESPONSE_ACCEPT ) {
filename = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER(file) );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ if( mandatory_ext ) {
+ int extlen = strlen(mandatory_ext);
+ int fnlen = strlen(filename);
+ if( fnlen < extlen || strcmp(filename + (fnlen - extlen), mandatory_ext) != 0 ) {
+ gchar *f2 = g_strdup_printf("%s%s",filename, mandatory_ext);
+ g_free(filename);
+ filename = f2;
+ }
+ }
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > if( initial_dir_key != -1 ) {
gchar *end_path = gtk_file_chooser_get_current_folder( GTK_FILE_CHOOSER(file) );
set_gui_path(initial_dir_key,end_path);
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -118,9 +127,9 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > }
void save_file_dialog_cb( const char *title, file_callback_t action, const char *pattern, const char *patname,
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- int initial_dir_key )
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ const char *mandatory_ext, int initial_dir_key )
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > {
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- gchar *filename = save_file_dialog( title, pattern, patname, initial_dir_key );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ gchar *filename = save_file_dialog( title, pattern, patname, <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >mandatory_ext, </span>initial_dir_key );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > if( filename != NULL ) {
action(filename);
g_free(filename);
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -224,7 +233,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
void save_state_action_callback( GtkAction *action, gpointer user_data)
{
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- save_file_dialog_cb( "Save state...", dreamcast_save_state, "*.dst", _("lxDream Save State (*.dst)"), CONFIG_SAVE_PATH );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ save_file_dialog_cb( "Save state...", dreamcast_save_state, "*.dst", _("lxDream Save State (*.dst)"), <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >".dst", </span>CONFIG_SAVE_PATH );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > }
void quick_state_action_callback( GtkRadioAction *action, GtkRadioAction *current, gpointer user_data)
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -316,7 +325,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
void save_scene_action_callback( GtkAction *action, gpointer user_data)
{
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- save_file_dialog_cb( _("Save next scene..."), pvr2_save_next_scene, "*.dsc", _("lxdream scene file (*.dsc)"), CONFIG_SAVE_PATH );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ save_file_dialog_cb( _("Save next scene..."), pvr2_save_next_scene, "*.dsc", _("lxdream scene file (*.dsc)"), <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >".dsc", </span>CONFIG_SAVE_PATH );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > }
int debug_window_get_selected_row( debug_window_t data );
</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/gtkui</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>gtkui.h</b></big> <small id="info" style="color: #888888;" >b072c961c729 -> aacaae9812ea</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/gtkui/gtkui.h
+++ lxdream/src/gtkui/gtkui.h
@@ -93,11 +93,11 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > gchar *open_file_dialog( const char *title, const char *pattern, const char *patname,
int initial_dir_key );
gchar *save_file_dialog( const char *title, const char *pattern, const char *patname,
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- int initial_dir_key );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ const char *mandatory_ext, int initial_dir_key );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > void open_file_dialog_cb( const char *title, file_callback_t action, const char *pattern, const char *patname,
int initial_dir_key );
void save_file_dialog_cb( const char *title, file_callback_t action, const char *pattern, const char *patname,
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- int initial_dir_key );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ const char *mandatory_ext, int initial_dir_key );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > gboolean gtk_gui_gdrom_mount_image( const char *filename );
/**
* Extract the keyval of the key event if no modifier keys were pressed -
</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/src/sh4</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>timer.c</b></big> <small id="info" style="color: #888888;" >b072c961c729 -> aacaae9812ea</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/sh4/timer.c
+++ lxdream/src/sh4/timer.c
@@ -42,7 +42,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
uint32_t sh4_cpu_period = 1000 / SH4_BASE_RATE; /* in nanoseconds */
uint32_t sh4_bus_period = 2* 1000 / SH4_BASE_RATE;
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-uint32_t sh4_peripheral_period = 4 * <span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >2</span>000 / SH4_BASE_RATE;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+uint32_t sh4_peripheral_period = 4 * <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >1</span>000 / SH4_BASE_RATE;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
MMIO_REGION_READ_FN( CPG, reg )
{
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -112,13 +112,29 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
/********************************** TMU *************************************/
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#define TCR_ICPF 0x0200
+#define TCR_UNF 0x0100
+#define TCR_UNIE 0x0020
+
+#define TCR_IRQ_ACTIVE (TCR_UNF|TCR_UNIE)
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #define TMU_IS_RUNNING(timer) (MMIO_READ(TMU,TSTR) & (1<<timer))
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+struct TMU_timer {
+ uint32_t timer_period;
+ uint32_t timer_remainder; /* left-over cycles from last count */
+ uint32_t timer_run; /* cycles already run from this slice */
+};
+
+static struct TMU_timer TMU_timers[3];
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > uint32_t TMU_count( int timer, uint32_t nanosecs );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+void TMU_schedule_timer( int timer );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
void TMU_event_callback( int eventid )
{
TMU_count( eventid - EVENT_TMU0, sh4r.slice_cycle );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ assert( MMIO_READ( TMU, TCR0 + (eventid - EVENT_TMU0)*12 ) & 0x100 );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > }
void TMU_init(void)
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -128,19 +144,16 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > register_event_callback( EVENT_TMU2, TMU_event_callback );
}
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#define TCR_ICPF 0x0200
-#define TCR_UNF 0x0100
-#define TCR_UNIE 0x0020
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+void TMU_dump(unsigned timer)
+{
+ fprintf(stderr, "Timer %d: %s %08x/%08x %dns run: %08X - %08X\n",
+ timer, TMU_IS_RUNNING(timer) ? "running" : "stopped",
+ MMIO_READ(TMU, TCNT0 + (timer*12)), MMIO_READ(TMU, TCOR0 + (timer*12)),
+ TMU_timers[timer].timer_period,
+ TMU_timers[timer].timer_run,
+ TMU_timers[timer].timer_remainder );
+}
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#define TCR_IRQ_ACTIVE (TCR_UNF|TCR_UNIE)
-
-struct TMU_timer {
- uint32_t timer_period;
- uint32_t timer_remainder; /* left-over cycles from last count */
- uint32_t timer_run; /* cycles already run from this slice */
-};
-
-static struct TMU_timer TMU_timers[3];
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
void TMU_set_timer_control( int timer, int tcr )
{
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -188,17 +201,31 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > period = sh4_peripheral_period; /* I dunno... */
break;
}
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- TMU_timers[timer].timer_period = period;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+
+ if( period != TMU_timers[timer].timer_period ) {
+ if( TMU_IS_RUNNING(timer) ) {
+ /* If we're changing clock speed while counting, sync up and reschedule */
+ TMU_count(timer, sh4r.slice_cycle);
+ TMU_timers[timer].timer_period = period;
+ TMU_schedule_timer(timer);
+ } else {
+ TMU_timers[timer].timer_period = period;
+ }
+ }
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
MMIO_WRITE( TMU, TCR0 + (12*timer), tcr );
}
void TMU_schedule_timer( int timer )
{
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- uint64_t duration = (uint64_t)((uint32_t)(MMIO_READ( TMU, TCNT0 + 12*timer )+1)) *
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ uint64_t duration = ((uint64_t)((uint32_t)(MMIO_READ( TMU, TCNT0 + 12*timer )))+1) *
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > (uint64_t)TMU_timers[timer].timer_period - TMU_timers[timer].timer_remainder;
event_schedule_long( EVENT_TMU0+timer, (uint32_t)(duration / 1000000000),
(uint32_t)(duration % 1000000000) );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+// if( timer == 2 ) {
+// WARN( "Schedule timer %d: %lldns", timer, duration );
+// TMU_dump(timer);
+// }
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > }
void TMU_start( int timer )
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -230,6 +257,8 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > uint32_t count = run_ns / TMU_timers[timer].timer_period;
uint32_t value = MMIO_READ( TMU, TCNT0 + 12*timer );
uint32_t reset = MMIO_READ( TMU, TCOR0 + 12*timer );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+// if( timer == 2 )
+// WARN( "Counting timer %d: %d ns, %d ticks", timer, run_ns, count );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > if( count > value ) {
uint32_t tcr = MMIO_READ( TMU, TCR0 + 12*timer );
tcr |= TCR_UNF;
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -239,6 +268,8 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > if( tcr & TCR_UNIE )
intc_raise_interrupt( INT_TMU_TUNI0 + timer );
MMIO_WRITE( TMU, TCNT0 + 12*timer, value );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+// if( timer == 2 )
+// WARN( "Underflowed timer %d", timer );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > TMU_schedule_timer(timer);
} else {
value -= count;
</pre></div>
<hr /><a name="file5" /><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;" >b072c961c729 -> aacaae9812ea</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/test/Makefile.in
+++ lxdream/test/Makefile.in
@@ -73,6 +73,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > @BUILD_SYSTEST_TRUE@check: build-tests
@BUILD_SYSTEST_TRUE@ $(RUNTEST) testsh4
@BUILD_SYSTEST_TRUE@ $(RUNTESTX) testsh4
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+@BUILD_SYSTEST_TRUE@ $(RUNTEST) randmath < $(srcdir)/random.dat > randmath.out && diff -u randmath.out randmath.expect
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > @BUILD_SYSTEST_TRUE@ $(RUNTEST) testmmu
@BUILD_SYSTEST_TRUE@ $(RUNTEST) testregs
@BUILD_SYSTEST_TRUE@ cat $(srcdir)/testta.data $(srcdir)/testta2.data $(srcdir)/testta3.data $(srcdir)/testta4.data $(srcdir)/testta5.data | $(RUNTEST) testta
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -80,7 +81,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > # $(RUNTEST) testide -d ../disc/test.nrg
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-build-tests: testsh4 testmmu testmath testide testta testregs testrend testdisp testspu testmmu
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+build-tests: testsh4 testmmu testmath testide testta testregs testrend testdisp testspu testmmu<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" > randmath randmath.expect</span>
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
lib/crt0.so: lib/crt0.s
$(mkdir_p) lib
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -161,6 +162,14 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
$(SH4OBJCOPY) testFF10 testFF10.bin
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+randmath: lib/crt0.so $(SHARED_OBJECTS) randmath.so
+ $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
+ $(SH4OBJCOPY) randmath randmath.bin
+
+randmath.expect: randmath.c
+ $(HOSTCC) $^ -o randmath.native
+ ./randmath.native < $(srcdir)/random.dat > $@
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > .PHONY : clean
clean:
rm -f *.o *.so *.ao *.ac *.bin sh4/*.so lib/*.so lib-arm/*.ao mapleid \
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -184,10 +193,10 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > 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 \
testide.c testmath.c testaica.c sh4/testmmu.c sh4/mmummio.c testregs.c testrend.c \
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- testspu.c testta.c testyuv.c timer.c timer.h \
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ testspu.c testta.c testyuv.c timer.c timer.h <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >randmath.c </span>\
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > testta.data testta2.data testta3.data testta4.data testta5.data testsort.data \
lxdream.rc dc.x lib/crt0.s lib/libc.a lib/libm.a lib/newlib-1.8.2-dc.patch \
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- aica.x lib-arm/libc.a lib-arm/libm.a lib-arm/crt0.s \
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ aica.x lib-arm/libc.a lib-arm/libm.a lib-arm/crt0.s <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >random.dat </span>\
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > include/_ansi.h include/_syslist.h include/ar.h include/assert.h include/ctype.h \
include/dirent.h include/errno.h include/fastmath.h include/fcntl.h include/grp.h \
include/ieeefp.h include/locale.h include/machine/fastmath.h include/machine/ieeefp.h \
</pre></div>
<center><small>Chaos Theory</small></center>
</div></body></html>