mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-11 08:39:48 +12:00
Memory: Make TLS only 0x200 bytes for each thread
Also move TLS to Base region
This commit is contained in:
parent
ba25ae7eba
commit
6c4c20fe3e
2 changed files with 6 additions and 6 deletions
|
@ -47,9 +47,9 @@ namespace VirtualAddrs {
|
|||
LinearHeapStartNew = 0x30000000,
|
||||
LinearHeapEndNew = 0x40000000,
|
||||
|
||||
// Start of TLS for first thread. Next thread's storage will be at TLSBase + 0x1000, and so on
|
||||
// Start of TLS for first thread. Next thread's storage will be at TLSBase + 0x200, and so on
|
||||
TLSBase = 0x1FF82000,
|
||||
TLSSize = 0x1000,
|
||||
TLSSize = 0x200,
|
||||
|
||||
VramStart = 0x1F000000,
|
||||
VramSize = 0x00600000,
|
||||
|
|
|
@ -37,10 +37,10 @@ void Memory::reset() {
|
|||
paddrTable[i] = 0;
|
||||
}
|
||||
|
||||
// Map 4 KB of FCRAM for each thread
|
||||
// TODO: the region should be taken from the exheader
|
||||
// TODO: each thread should only have 512 bytes - an FCRAM page should account for 8 threads
|
||||
assert(allocMemory(VirtualAddrs::TLSBase, appResourceLimits.maxThreads, FcramRegion::App, true, true, false, MemoryState::Locked));
|
||||
// Allocate 512 bytes of TLS for each thread. Since the smallest allocatable unit is 4 KB, that means allocating one page for every 8 threads
|
||||
// Note that TLS is always allocated in the Base region
|
||||
s32 tlsPages = (appResourceLimits.maxThreads + 7) >> 3;
|
||||
allocMemory(VirtualAddrs::TLSBase, tlsPages, FcramRegion::Base, true, true, false, MemoryState::Locked);
|
||||
|
||||
// Initialize shared memory blocks and reserve memory for them
|
||||
for (auto& e : sharedMemBlocks) {
|
||||
|
|
Loading…
Add table
Reference in a new issue