changeset 887:1c12673c11be

remove run variable to avoid SPU compiler bug from SchedTaskArray::exec().
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 14 Jul 2010 20:40:33 +0900
parents 0cd80fa14cd9
children 586ed400413a
files TaskManager/Makefile.def TaskManager/kernel/schedule/SchedTaskArray.cc TaskManager/kernel/schedule/Scheduler.h example/Bulk/Makefile.def
diffstat 4 files changed, 4 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/TaskManager/Makefile.def	Tue Jul 13 18:23:22 2010 +0900
+++ b/TaskManager/Makefile.def	Wed Jul 14 20:40:33 2010 +0900
@@ -30,7 +30,7 @@
 ABIBIT = 32
 
 #OPT = -O9
-OPT =  -g -DTASK_LIST_MAIL
+OPT =  -O9 -g -DTASK_LIST_MAIL
 
 CC     = g++   
 CFLAGS = -Wall `sdl-config --cflags` -m$(ABIBIT)   $(OPT)
--- a/TaskManager/kernel/schedule/SchedTaskArray.cc	Tue Jul 13 18:23:22 2010 +0900
+++ b/TaskManager/kernel/schedule/SchedTaskArray.cc	Wed Jul 14 20:40:33 2010 +0900
@@ -105,7 +105,6 @@
 SchedTaskArray::exec()
 {
     task_list[atask->command].wait(scheduler,atask->command);
-    TaskObjectRun run = task_list[atask->command].run;
     if (atask->outData_count > 0) {
 	// allocate write buffer
 	outListData.length = atask->outData_count;
@@ -117,7 +116,7 @@
 	writebuf = manager->allocate(outListData.size);
     }
     scheduler->dma_wait(DMA_READ);
-    (*run)(this, readbuf, writebuf);
+    task_list[atask->command].run(this, readbuf, writebuf);
     free(readbuf);
     // 書き込む領域がなければ無視
 
--- a/TaskManager/kernel/schedule/Scheduler.h	Tue Jul 13 18:23:22 2010 +0900
+++ b/TaskManager/kernel/schedule/Scheduler.h	Wed Jul 14 20:40:33 2010 +0900
@@ -31,7 +31,7 @@
 //  It is a pointer to an object creation function
 //  大きいので、SPEには置かない方が本当は良い...
 //  get_segment で取って来るのが、おそらくは正しい。
-typedef struct {
+typedef struct task_object {
     TaskObjectRun run;
     memaddr location;            // location address in a.out
     memaddr end;            
--- a/example/Bulk/Makefile.def	Tue Jul 13 18:23:22 2010 +0900
+++ b/example/Bulk/Makefile.def	Wed Jul 14 20:40:33 2010 +0900
@@ -8,7 +8,7 @@
 CERIUM = ../../../Cerium
 
 CC      = g++
-OPT = -g
+OPT = -g -O9
 CFLAGS  =  -Wall $(OPT)  
 
 ABIBIT = 32