comparison 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
comparison
equal deleted inserted replaced
870:79b2d56aa27a 871:ab3cd3aeacff
36 { 36 {
37 (this->*start_dmawait_profile)(); 37 (this->*start_dmawait_profile)();
38 mfc_write_tag_mask(1 << mask); 38 mfc_write_tag_mask(1 << mask);
39 mfc_write_tag_update_all(); 39 mfc_write_tag_update_all();
40 mfc_read_tag_status(); 40 mfc_read_tag_status();
41 __asm__ __volatile__(" sync");
41 (this->*end_dmawait_profile)(&global_wait_time); 42 (this->*end_dmawait_profile)(&global_wait_time);
42 } 43 }
43 44
44 void CellDmaManager::mail_write(memaddr data) 45 void CellDmaManager::mail_write(memaddr data)
45 { 46 {
46 (this->*start_dmawait_profile)(); 47 (this->*start_dmawait_profile)();
47 spu_write_out_mbox((uint32)data); 48 spu_write_out_mbox((uint32)data);
49 #if 0
48 if (ABIBIT>32) { 50 if (ABIBIT>32) {
49 unsigned long data0 = (unsigned long)data; 51 unsigned long data0 = (unsigned long)data;
50 spu_write_out_mbox((uint32)(data0>>4)); 52 spu_write_out_mbox((uint32)(data0>>32));
51 } 53 }
54 #endif
52 (this->*end_dmawait_profile)(&global_mail_time); 55 (this->*end_dmawait_profile)(&global_mail_time);
53 } 56 }
54 57
55 memaddr CellDmaManager::mail_read() 58 memaddr CellDmaManager::mail_read()
56 { 59 {
57 (this->*start_dmawait_profile)(); 60 (this->*start_dmawait_profile)();
58 memaddr data = (memaddr)spu_read_in_mbox(); 61 memaddr data = (memaddr)spu_read_in_mbox();
62 #if 0
59 if (ABIBIT>32) { 63 if (ABIBIT>32) {
60 data += (spu_read_in_mbox()<<4); 64 data += (spu_read_in_mbox()<<32);
61 } 65 }
66 #endif
62 (this->*end_dmawait_profile)(&global_mail_time); 67 (this->*end_dmawait_profile)(&global_mail_time);
63 return data; 68 return data;
64 } 69 }
65 70
66 void CellDmaManager::dma_loadList(ListDataPtr list, void *buff, uint32 mask) 71 void CellDmaManager::dma_loadList(ListDataPtr list, void *buff, uint32 mask)