summaryrefslogtreecommitdiff
path: root/src/core/mem_map_funcs.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2014-04-17 21:15:40 -0400
committerGravatar bunnei2014-04-17 21:15:40 -0400
commita9dba388eba586691724187fe53b385cc0bf23aa (patch)
treecdd718342fba54e3345d111e14150a2461d795a7 /src/core/mem_map_funcs.cpp
parentmore various refactors to memory interface (diff)
downloadyuzu-a9dba388eba586691724187fe53b385cc0bf23aa.tar.gz
yuzu-a9dba388eba586691724187fe53b385cc0bf23aa.tar.xz
yuzu-a9dba388eba586691724187fe53b385cc0bf23aa.zip
added memory read/write to GSP heap
Diffstat (limited to 'src/core/mem_map_funcs.cpp')
-rw-r--r--src/core/mem_map_funcs.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/core/mem_map_funcs.cpp b/src/core/mem_map_funcs.cpp
index 40d9dab3a..5ab1b6e92 100644
--- a/src/core/mem_map_funcs.cpp
+++ b/src/core/mem_map_funcs.cpp
@@ -40,6 +40,10 @@ inline void _Read(T &var, const u32 addr) {
40 } else if ((vaddr & 0xFF000000) == 0x10000000 || (vaddr & 0xFF000000) == 0x1E000000) { 40 } else if ((vaddr & 0xFF000000) == 0x10000000 || (vaddr & 0xFF000000) == 0x1E000000) {
41 HW::Read<T>(var, vaddr); 41 HW::Read<T>(var, vaddr);
42 42
43 // FCRAM - GSP heap
44 } else if ((vaddr > HEAP_GSP_VADDR) && (vaddr < HEAP_GSP_VADDR_END)) {
45 var = *((const T*)&g_heap_gsp[vaddr & HEAP_GSP_MASK]);
46
43 // FCRAM - application heap 47 // FCRAM - application heap
44 } else if ((vaddr > HEAP_VADDR) && (vaddr < HEAP_VADDR_END)) { 48 } else if ((vaddr > HEAP_VADDR) && (vaddr < HEAP_VADDR_END)) {
45 var = *((const T*)&g_heap[vaddr & HEAP_MASK]); 49 var = *((const T*)&g_heap[vaddr & HEAP_MASK]);
@@ -68,8 +72,8 @@ inline void _Write(u32 addr, const T data) {
68 HW::Write<T>(vaddr, data); 72 HW::Write<T>(vaddr, data);
69 73
70 // FCRAM - GSP heap 74 // FCRAM - GSP heap
71 //} else if ((vaddr > HEAP_GSP_VADDR) && (vaddr < HEAP_VADDR_GSP_END)) { 75 } else if ((vaddr > HEAP_GSP_VADDR) && (vaddr < HEAP_GSP_VADDR_END)) {
72 // *(T*)&g_heap_gsp[vaddr & FCRAM_MASK] = data; 76 *(T*)&g_heap_gsp[vaddr & HEAP_GSP_MASK] = data;
73 77
74 // FCRAM - application heap 78 // FCRAM - application heap
75 } else if ((vaddr > HEAP_VADDR) && (vaddr < HEAP_VADDR_END)) { 79 } else if ((vaddr > HEAP_VADDR) && (vaddr < HEAP_VADDR_END)) {
@@ -98,8 +102,12 @@ inline void _Write(u32 addr, const T data) {
98u8 *GetPointer(const u32 addr) { 102u8 *GetPointer(const u32 addr) {
99 const u32 vaddr = _AddressPhysicalToVirtual(addr); 103 const u32 vaddr = _AddressPhysicalToVirtual(addr);
100 104
105 // FCRAM - GSP heap
106 if ((vaddr > HEAP_GSP_VADDR) && (vaddr < HEAP_GSP_VADDR_END)) {
107 return g_heap_gsp + (vaddr & HEAP_GSP_MASK);
108
101 // FCRAM - application heap 109 // FCRAM - application heap
102 if ((vaddr > HEAP_VADDR) && (vaddr < HEAP_VADDR_END)) { 110 } else if ((vaddr > HEAP_VADDR) && (vaddr < HEAP_VADDR_END)) {
103 return g_heap + (vaddr & HEAP_MASK); 111 return g_heap + (vaddr & HEAP_MASK);
104 112
105 } else { 113 } else {