JKRAramHeap and JKRAramPiece (#53)

* renamed func_XXX to _savegpr_XX

* renamed func_XXX to _restgpr_XX

* renamed func_XXX to _savefpr_XX

* renamed func_XXX to _restfpr_XX

* cleanup functions.h and moved intrisics to mwcc.h

* formatting

* cleanup functions.h

* Added include/ar/ARQ.h

* renamed func_XXX to _savegpr_25

* removed JKRAramPiece asm files

* JKRAramHeap OK, JKRAramPiece OK

* formatting

* more formatting

* Added const and removed explicit this->

* fixed merge problems

* changed mMessages[1] to mMessage

* foramatting

Co-authored-by: Julgodis <>
Co-authored-by: Pheenoh <pheenoh@gmail.com>
This commit is contained in:
Jonathan Wase
2021-01-03 11:29:50 +01:00
committed by GitHub
parent 0fdce6c042
commit 112e86f0e8
31 changed files with 32859 additions and 726 deletions
+23 -23
View File
@@ -5,56 +5,56 @@
JKRAramBlock::JKRAramBlock(u32 address, u32 size, u32 freeSize, u8 groupId, bool isTempMemory)
: mBlockLink(this) {
this->mAddress = address;
this->mSize = size;
this->mFreeSize = freeSize;
this->mGroupId = groupId;
this->mIsTempMemory = isTempMemory;
mAddress = address;
mSize = size;
mFreeSize = freeSize;
mGroupId = groupId;
mIsTempMemory = isTempMemory;
}
JKRAramBlock::~JKRAramBlock() {
JSUList<JKRAramBlock>* list = this->mBlockLink.getSupervisor();
JSULink<JKRAramBlock>* prev = this->mBlockLink.getPrev();
JSUList<JKRAramBlock>* list = mBlockLink.getSupervisor();
JSULink<JKRAramBlock>* prev = mBlockLink.getPrev();
if (prev) {
JKRAramBlock* block = prev->getObject();
block->mFreeSize = this->mSize + this->mFreeSize + block->mFreeSize;
list->remove(&this->mBlockLink);
block->mFreeSize = mSize + mFreeSize + block->mFreeSize;
list->remove(&mBlockLink);
} else {
this->mFreeSize = this->mFreeSize + this->mSize;
this->mSize = 0;
mFreeSize = mFreeSize + mSize;
mSize = 0;
}
}
JKRAramBlock* JKRAramBlock::allocHead(u32 size, u8 groupId, JKRAramHeap* aramHeap) {
u32 address = this->mAddress;
u32 usedSize = this->mSize;
u32 address = mAddress;
u32 usedSize = mSize;
u32 nextAddress = address + usedSize;
u32 freeSize = this->mFreeSize;
u32 freeSize = mFreeSize;
u32 nextFreeSize = freeSize - size;
JKRAramBlock* block = new (aramHeap->getMgrHeap(), 0)
JKRAramBlock(nextAddress, size, nextFreeSize, groupId, false);
this->mFreeSize = 0;
JSULink<JKRAramBlock>* next = this->mBlockLink.getNext();
JSUList<JKRAramBlock>* list = this->mBlockLink.getSupervisor();
mFreeSize = 0;
JSULink<JKRAramBlock>* next = mBlockLink.getNext();
JSUList<JKRAramBlock>* list = mBlockLink.getSupervisor();
list->insert(next, &block->mBlockLink);
return block;
}
JKRAramBlock* JKRAramBlock::allocTail(u32 size, u8 groupId, JKRAramHeap* aramHeap) {
u32 freeSize = this->mFreeSize;
u32 address = this->mAddress;
u32 usedSize = this->mSize;
u32 freeSize = mFreeSize;
u32 address = mAddress;
u32 usedSize = mSize;
u32 endAddress = address + usedSize + freeSize;
u32 tailAddress = endAddress - size;
JKRAramBlock* block =
new (aramHeap->getMgrHeap(), 0) JKRAramBlock(tailAddress, size, 0, groupId, true);
this->mFreeSize -= size;
JSULink<JKRAramBlock>* next = this->mBlockLink.getNext();
JSUList<JKRAramBlock>* list = this->mBlockLink.getSupervisor();
mFreeSize -= size;
JSULink<JKRAramBlock>* next = mBlockLink.getNext();
JSUList<JKRAramBlock>* list = mBlockLink.getSupervisor();
list->insert(next, &block->mBlockLink);
return block;
}