diff TaskManager/Cell/spe/CellDmaManager.cc @ 871:ab3cd3aeacff

fix get segment dma tag zero problem
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 04 Jul 2010 16:56:04 +0900
parents 31d0a5baafdf
children ad6903dd6419
line wrap: on
line diff
--- a/TaskManager/Cell/spe/CellDmaManager.cc	Tue Jun 29 04:23:52 2010 +0900
+++ b/TaskManager/Cell/spe/CellDmaManager.cc	Sun Jul 04 16:56:04 2010 +0900
@@ -38,6 +38,7 @@
     mfc_write_tag_mask(1 << mask);
     mfc_write_tag_update_all();
     mfc_read_tag_status();
+    __asm__ __volatile__("   sync");
     (this->*end_dmawait_profile)(&global_wait_time);
 }
 
@@ -45,10 +46,12 @@
 {
     (this->*start_dmawait_profile)();
     spu_write_out_mbox((uint32)data);
+#if 0
     if (ABIBIT>32) {
 	unsigned long data0 = (unsigned long)data;
-	spu_write_out_mbox((uint32)(data0>>4));
+	spu_write_out_mbox((uint32)(data0>>32));
     }
+#endif
     (this->*end_dmawait_profile)(&global_mail_time);
 }
 
@@ -56,9 +59,11 @@
 {
     (this->*start_dmawait_profile)();
     memaddr data = (memaddr)spu_read_in_mbox();
+#if 0 
     if (ABIBIT>32) {
-	data += (spu_read_in_mbox()<<4);
+	data += (spu_read_in_mbox()<<32);
     }
+#endif
     (this->*end_dmawait_profile)(&global_mail_time);
     return data;
 }