/[pcsx2_0.9.7]/trunk/pcsx2/VUmicroMem.cpp
ViewVC logotype

Diff of /trunk/pcsx2/VUmicroMem.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 62 by william, Tue Sep 7 11:08:22 2010 UTC revision 280 by william, Thu Dec 23 12:02:12 2010 UTC
# Line 18  Line 18 
18  #include "Common.h"  #include "Common.h"
19  #include "VUmicro.h"  #include "VUmicro.h"
20    
21    
22  __aligned16 VURegs vuRegs[2];  __aligned16 VURegs vuRegs[2];
23    
 static u8* m_vuAllMem = NULL;  
 static const uint m_vuMemSize =  
         0x1000 +                                        // VU0micro memory  
         0x4000 +                                        // VU0 memory  
         0x4000 +                                        // VU1 memory  
         0x4000;  
24    
25  void vuMicroMemAlloc()  vuMemoryReserve::vuMemoryReserve()
26            : _parent( L"VU0/1 on-chip memory", VU1_PROGSIZE + VU1_MEMSIZE + VU0_PROGSIZE + VU0_MEMSIZE )
27  {  {
28          if( m_vuAllMem == NULL )  }
                 m_vuAllMem = vtlb_malloc( m_vuMemSize, 16 );  
29    
30          if( m_vuAllMem == NULL )  void vuMemoryReserve::Reserve()
31                  throw Exception::OutOfMemory( L"VU0 and VU1 on-chip memory" );  {
32            _parent::Reserve(HostMemoryMap::VUmem);
33            //_parent::Reserve(EmuConfig.HostMemMap.VUmem);
34    
35          u8* curpos = m_vuAllMem;          u8* curpos = m_reserve.GetPtr();
36          VU0.Micro       = curpos; curpos += 0x1000;          VU0.Micro       = curpos; curpos += VU0_PROGSIZE;
37          VU0.Mem         = curpos; curpos += 0x4000;          VU0.Mem         = curpos; curpos += VU0_MEMSIZE;
38          VU1.Micro       = curpos; curpos += 0x4000;          VU1.Micro       = curpos; curpos += VU1_PROGSIZE;
39          VU1.Mem         = curpos;          VU1.Mem         = curpos; curpos += VU1_MEMSIZE;
          //curpos += 0x4000;  
40  }  }
41    
42  void vuMicroMemShutdown()  void vuMemoryReserve::Release()
43  {  {
44          // -- VTLB Memory Allocation --          _parent::Release();
45    
46          vtlb_free( m_vuAllMem, m_vuMemSize );          VU0.Micro       = VU0.Mem       = NULL;
47          m_vuAllMem = NULL;          VU1.Micro       = VU1.Mem       = NULL;
48  }  }
49    
50  void vuMicroMemReset()  void vuMemoryReserve::Reset()
51  {  {
52          pxAssume( VU0.Mem != NULL );          _parent::Reset();
53          pxAssume( VU1.Mem != NULL );          
54            pxAssume( VU0.Mem );
55            pxAssume( VU1.Mem );
56    
57          memMapVUmicro();          memMapVUmicro();
58    
# Line 67  void vuMicroMemReset() Line 65  void vuMicroMemReset()
65          VU0.VF[0].f.z = 0.0f;          VU0.VF[0].f.z = 0.0f;
66          VU0.VF[0].f.w = 1.0f;          VU0.VF[0].f.w = 1.0f;
67          VU0.VI[0].UL = 0;          VU0.VI[0].UL = 0;
         memzero_ptr<4*1024>(VU0.Mem);  
         memzero_ptr<4*1024>(VU0.Micro);  
68    
69          // === VU1 Initialization ===          // === VU1 Initialization ===
70          memzero(VU1.ACC);          memzero(VU1.ACC);
# Line 79  void vuMicroMemReset() Line 75  void vuMicroMemReset()
75          VU1.VF[0].f.z = 0.0f;          VU1.VF[0].f.z = 0.0f;
76          VU1.VF[0].f.w = 1.0f;          VU1.VF[0].f.w = 1.0f;
77          VU1.VI[0].UL = 0;          VU1.VI[0].UL = 0;
         memzero_ptr<16*1024>(VU1.Mem);  
         memzero_ptr<16*1024>(VU1.Micro);  
78  }  }
79    
80  void SaveStateBase::vuMicroFreeze()  void SaveStateBase::vuMicroFreeze()

Legend:
Removed from v.62  
changed lines
  Added in v.280

  ViewVC Help
Powered by ViewVC 1.1.22