mirror of
https://github.com/zeldaret/tp
synced 2026-07-07 14:13:27 -04:00
JKRSolidHeap (#69)
* JKRSolidHeap progress * JKRSolidHeap, added const to virtual functions, and JKRHeap::TState * fixed braces * fix function overload * clang-format Co-authored-by: Julgodis <> Co-authored-by: Pheenoh <pheenoh@gmail.com>
This commit is contained in:
@@ -10,23 +10,23 @@ protected:
|
||||
virtual ~JKRAssertHeap();
|
||||
|
||||
public:
|
||||
/* vt[04] */ virtual u32 getHeapType(void); /* override */
|
||||
/* vt[05] */ virtual bool check(void); /* override */
|
||||
/* vt[06] */ virtual bool dump_sort(void); /* override */
|
||||
/* vt[07] */ virtual bool dump(void); /* override */
|
||||
/* vt[08] */ virtual void do_destroy(void); /* override */
|
||||
/* vt[09] */ virtual void* do_alloc(u32, int); /* override */
|
||||
/* vt[10] */ virtual void do_free(void*); /* override */
|
||||
/* vt[11] */ virtual void do_freeAll(void); /* override */
|
||||
/* vt[12] */ virtual void do_freeTail(void); /* override */
|
||||
/* vt[13] */ virtual void do_fillFreeArea(void); /* override */
|
||||
/* vt[14] */ virtual s32 do_resize(void*, u32); /* override */
|
||||
/* vt[15] */ virtual s32 do_getSize(void*); /* override */
|
||||
/* vt[16] */ virtual s32 do_getFreeSize(void); /* override */
|
||||
/* vt[17] */ virtual void* do_getMaxFreeBlock(void); /* override */
|
||||
/* vt[18] */ virtual s32 do_getTotalFreeSize(void); /* override */
|
||||
/* vt[19] */ virtual u8 do_changeGroupID(u8 param_1); /* override */
|
||||
/* vt[20] */ virtual u8 do_getCurrentGroupId(void); /* override */
|
||||
/* vt[04] */ virtual u32 getHeapType(void) const; /* override */
|
||||
/* vt[05] */ virtual bool check(void); /* override */
|
||||
/* vt[06] */ virtual bool dump_sort(void); /* override */
|
||||
/* vt[07] */ virtual bool dump(void); /* override */
|
||||
/* vt[08] */ virtual void do_destroy(void); /* override */
|
||||
/* vt[09] */ virtual void* do_alloc(u32, int); /* override */
|
||||
/* vt[10] */ virtual void do_free(void*); /* override */
|
||||
/* vt[11] */ virtual void do_freeAll(void); /* override */
|
||||
/* vt[12] */ virtual void do_freeTail(void); /* override */
|
||||
/* vt[13] */ virtual void do_fillFreeArea(void); /* override */
|
||||
/* vt[14] */ virtual s32 do_resize(void*, u32); /* override */
|
||||
/* vt[15] */ virtual s32 do_getSize(void*) const; /* override */
|
||||
/* vt[16] */ virtual s32 do_getFreeSize(void) const; /* override */
|
||||
/* vt[17] */ virtual void* do_getMaxFreeBlock(void) const; /* override */
|
||||
/* vt[18] */ virtual s32 do_getTotalFreeSize(void) const; /* override */
|
||||
/* vt[19] */ virtual u8 do_changeGroupID(u8 param_1); /* override */
|
||||
/* vt[20] */ virtual u8 do_getCurrentGroupId(void) const; /* override */
|
||||
|
||||
public:
|
||||
static JKRAssertHeap* create(JKRHeap*);
|
||||
|
||||
@@ -15,20 +15,13 @@ public:
|
||||
void getHeapBlock(void*);
|
||||
|
||||
void newGroupId(u8 groupId) { this->mGroupId = groupId; }
|
||||
|
||||
bool isValid() { return this->mMagic == 0x484d; }
|
||||
|
||||
bool _isTempMemBlock() { return (this->mFlags & 0x80) ? true : false; }
|
||||
|
||||
bool isValid() const { return this->mMagic == 0x484d; }
|
||||
bool _isTempMemBlock() const { return (this->mFlags & 0x80) ? true : false; }
|
||||
int getAlignment() const { return this->mFlags & 0x7f; }
|
||||
|
||||
void* getContent() { return (void*)(this + 1); }
|
||||
|
||||
CMemBlock* getPrevBlock() { return this->mPrev; }
|
||||
|
||||
CMemBlock* getNextBlock() { return this->mNext; }
|
||||
|
||||
u32 getSize() { return this->size; }
|
||||
void* getContent() const { return (void*)(this + 1); }
|
||||
CMemBlock* getPrevBlock() const { return this->mPrev; }
|
||||
CMemBlock* getNextBlock() const { return this->mNext; }
|
||||
u32 getSize() const { return this->size; }
|
||||
|
||||
private:
|
||||
u16 mMagic;
|
||||
@@ -57,10 +50,10 @@ protected:
|
||||
public:
|
||||
s32 getUsedSize(u8) const;
|
||||
s32 getTotalUsedSize(void) const;
|
||||
CMemBlock* getHeadUsedList() { return mHeadUsedList; }
|
||||
CMemBlock* getHeadUsedList() const { return mHeadUsedList; }
|
||||
|
||||
public:
|
||||
/* vt[04] */ virtual u32 getHeapType(); /* override */
|
||||
/* vt[04] */ virtual u32 getHeapType() const; /* override */
|
||||
/* vt[05] */ virtual bool check(); /* override */
|
||||
/* vt[06] */ virtual bool dump_sort(); /* override */
|
||||
/* vt[07] */ virtual bool dump(); /* override */
|
||||
@@ -71,12 +64,12 @@ public:
|
||||
/* vt[12] */ virtual void do_freeTail(); /* override */
|
||||
/* vt[13] */ virtual void do_fillFreeArea(); /* override */
|
||||
/* vt[14] */ virtual s32 do_resize(void* ptr, u32 size); /* override */
|
||||
/* vt[15] */ virtual s32 do_getSize(void* ptr); /* override */
|
||||
/* vt[16] */ virtual s32 do_getFreeSize(); /* override */
|
||||
/* vt[17] */ virtual void* do_getMaxFreeBlock(); /* override */
|
||||
/* vt[18] */ virtual s32 do_getTotalFreeSize(); /* override */
|
||||
/* vt[15] */ virtual s32 do_getSize(void* ptr) const; /* override */
|
||||
/* vt[16] */ virtual s32 do_getFreeSize() const; /* override */
|
||||
/* vt[17] */ virtual void* do_getMaxFreeBlock() const; /* override */
|
||||
/* vt[18] */ virtual s32 do_getTotalFreeSize() const; /* override */
|
||||
/* vt[19] */ virtual u8 do_changeGroupID(u8 newGroupID); /* override */
|
||||
/* vt[20] */ virtual u8 do_getCurrentGroupId(); /* override */
|
||||
/* vt[20] */ virtual u8 do_getCurrentGroupId() const; /* override */
|
||||
/* vt[21] */ virtual void state_register(JKRHeap::TState*, u32) const; /* override */
|
||||
/* vt[22] */ virtual bool state_compare(JKRHeap::TState const&,
|
||||
JKRHeap::TState const&) const; /* override */
|
||||
|
||||
@@ -15,7 +15,7 @@ lbl_802CEE50:
|
||||
/* 802CEE58 002CBD98 40 82 00 10 */ bne lbl_802CEE68
|
||||
/* 802CEE5C 002CBD9C 7F 83 E3 78 */ mr r3, r28
|
||||
/* 802CEE60 002CBDA0 38 80 00 10 */ li r4, 0x10
|
||||
/* 802CEE64 002CBDA4 4B FF F9 79 */ bl getMaxAllocatableSize__7JKRHeapFi
|
||||
/* 802CEE64 002CBDA4 4B FF F9 79 */ bl getMaxAllocatableSize__7JKRHeapCFi
|
||||
lbl_802CEE68:
|
||||
/* 802CEE68 002CBDA8 54 7F 00 36 */ rlwinm r31, r3, 0, 0, 0x1b
|
||||
/* 802CEE6C 002CBDAC 28 1F 00 A0 */ cmplwi r31, 0xa0
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
/* 802D096C 002CD8AC 90 7E 00 00 */ stw r3, 0(r30)
|
||||
/* 802D0970 002CD8B0 48 00 00 14 */ b lbl_802D0984
|
||||
lbl_802D0974:
|
||||
/* 802D0974 002CD8B4 4B FF DE 11 */ bl getTotalFreeSize__7JKRHeapFv
|
||||
/* 802D0974 002CD8B4 4B FF DE 11 */ bl getTotalFreeSize__7JKRHeapCFv
|
||||
/* 802D0978 002CD8B8 80 1D 00 38 */ lwz r0, 0x38(r29)
|
||||
/* 802D097C 002CD8BC 7C 03 00 50 */ subf r0, r3, r0
|
||||
/* 802D0980 002CD8C0 90 1E 00 00 */ stw r0, 0(r30)
|
||||
|
||||
@@ -5,10 +5,27 @@
|
||||
#include "dolphin/types.h"
|
||||
#include "global.h"
|
||||
|
||||
typedef void (*JKRErrorHandler)(void*, u32, int);
|
||||
class JKRHeap;
|
||||
typedef void (*JKRErrorHandler)(JKRHeap*, u32, int);
|
||||
extern JKRErrorHandler lbl_8045137C; // JKRHeap::mErrorHandler
|
||||
|
||||
class JKRHeap : public JKRDisposer {
|
||||
public:
|
||||
class TState {};
|
||||
class TState {
|
||||
public:
|
||||
u32 mUsedSize;
|
||||
u32 mCheckCode;
|
||||
u32 mBuf;
|
||||
u32 field_0xc;
|
||||
JKRHeap* mHeap;
|
||||
u32 mId;
|
||||
|
||||
public:
|
||||
u32 getUsedSize() const { return mUsedSize; }
|
||||
u32 getCheckCode() const { return mCheckCode; }
|
||||
JKRHeap* getHeap() const { return mHeap; }
|
||||
u32 getId() const { return mId; }
|
||||
};
|
||||
|
||||
public:
|
||||
JKRHeap(void*, u32, JKRHeap*, bool);
|
||||
@@ -23,12 +40,12 @@ public:
|
||||
void freeAll();
|
||||
void freeTail();
|
||||
s32 resize(void* ptr, u32 size);
|
||||
s32 getSize(void* ptr);
|
||||
s32 getFreeSize();
|
||||
void* getMaxFreeBlock();
|
||||
s32 getTotalFreeSize();
|
||||
s32 getSize(void* ptr) const;
|
||||
s32 getFreeSize() const;
|
||||
void* getMaxFreeBlock() const;
|
||||
s32 getTotalFreeSize() const;
|
||||
u8 changeGroupID(u8 newGroupId);
|
||||
s32 getMaxAllocatableSize(int alignment);
|
||||
u32 getMaxAllocatableSize(int alignment) const;
|
||||
|
||||
JKRHeap* find(void* ptr) const;
|
||||
JKRHeap* findAllHeap(void* ptr) const;
|
||||
@@ -42,7 +59,7 @@ public:
|
||||
bool isSubHeap(JKRHeap* heap) const;
|
||||
|
||||
/* vt[03] */ virtual void callAllDisposer();
|
||||
/* vt[04] */ virtual u32 getHeapType() = 0;
|
||||
/* vt[04] */ virtual u32 getHeapType() const = 0;
|
||||
/* vt[05] */ virtual bool check() = 0;
|
||||
/* vt[06] */ virtual bool dump_sort();
|
||||
/* vt[07] */ virtual bool dump() = 0;
|
||||
@@ -53,25 +70,28 @@ public:
|
||||
/* vt[12] */ virtual void do_freeTail() = 0;
|
||||
/* vt[13] */ virtual void do_fillFreeArea() = 0;
|
||||
/* vt[14] */ virtual s32 do_resize(void* ptr, u32 size) = 0;
|
||||
/* vt[15] */ virtual s32 do_getSize(void* ptr) = 0;
|
||||
/* vt[16] */ virtual s32 do_getFreeSize() = 0;
|
||||
/* vt[17] */ virtual void* do_getMaxFreeBlock() = 0;
|
||||
/* vt[18] */ virtual s32 do_getTotalFreeSize() = 0;
|
||||
/* vt[15] */ virtual s32 do_getSize(void* ptr) const = 0;
|
||||
/* vt[16] */ virtual s32 do_getFreeSize() const = 0;
|
||||
/* vt[17] */ virtual void* do_getMaxFreeBlock() const = 0;
|
||||
/* vt[18] */ virtual s32 do_getTotalFreeSize() const = 0;
|
||||
/* vt[19] */ virtual u8 do_changeGroupID(u8 newGroupID);
|
||||
/* vt[20] */ virtual u8 do_getCurrentGroupId();
|
||||
/* vt[20] */ virtual u8 do_getCurrentGroupId() const;
|
||||
/* vt[21] */ virtual void state_register(JKRHeap::TState*, unsigned long) const;
|
||||
/* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const;
|
||||
/* vt[23] */ virtual void state_dump();
|
||||
/* vt[23] */ virtual void state_dump(JKRHeap::TState const&) const;
|
||||
|
||||
void setDebugFill(bool debugFill) { mDebugFill = debugFill; }
|
||||
|
||||
bool getDebugFill() const { return mDebugFill; }
|
||||
void* getStartAddr() const { return (void*)mStart; }
|
||||
|
||||
void* getEndAddr() const { return (void*)mEnd; }
|
||||
|
||||
u32 getSize() const { return mSize; }
|
||||
|
||||
bool getErrorFlag() const { return mErrorFlag; }
|
||||
void callErrorHandler(JKRHeap* heap, u32 size, int alignment) {
|
||||
// lbl_8045137C = JKRHeap::mErrorHandler
|
||||
if (lbl_8045137C) {
|
||||
(*lbl_8045137C)(heap, size, alignment);
|
||||
}
|
||||
}
|
||||
|
||||
JKRHeap* getParent() const {
|
||||
JSUTree<JKRHeap>* parent = mChildTree.getParent();
|
||||
@@ -79,21 +99,17 @@ public:
|
||||
}
|
||||
|
||||
JSUTree<JKRHeap>& getHeapTree() { return mChildTree; }
|
||||
|
||||
void appendDisposer(JKRDisposer* disposer) { mDisposerList.append(&disposer->mLink); }
|
||||
|
||||
void removeDisposer(JKRDisposer* disposer) { mDisposerList.remove(&disposer->mLink); }
|
||||
|
||||
void lock() { OSLockMutex(&mMutex); }
|
||||
|
||||
void unlock() { OSUnlockMutex(&mMutex); }
|
||||
|
||||
protected:
|
||||
/* 0x00 */ // vtable
|
||||
/* 0x04 */ // JKRDisposer
|
||||
/* 0x18 */ OSMutex mMutex;
|
||||
/* 0x30 */ u32 mStart;
|
||||
/* 0x34 */ u32 mEnd;
|
||||
/* 0x30 */ u8* mStart;
|
||||
/* 0x34 */ u8* mEnd;
|
||||
/* 0x38 */ u32 mSize;
|
||||
/* 0x3C */ bool mDebugFill;
|
||||
/* 0x3D */ bool mCheckMemoryFilled;
|
||||
@@ -118,23 +134,24 @@ public:
|
||||
static bool checkMemoryFilled(void* src, u32 size, u8 value);
|
||||
|
||||
static void JKRDefaultMemoryErrorRoutine(JKRHeap* heap, u32 size, int alignment);
|
||||
static JKRErrorHandler setErrorHandler(JKRErrorHandler error_handler);
|
||||
static JKRErrorHandler setErrorHandler(JKRErrorHandler errorHandler);
|
||||
|
||||
static void* getCodeStart(void) { return lbl_80451384; }
|
||||
|
||||
static void* getCodeEnd(void) { return lbl_80451388; }
|
||||
|
||||
static void* getUserRamStart(void) { return lbl_8045138C; }
|
||||
|
||||
static void* getUserRamEnd(void) { return lbl_80451390; }
|
||||
|
||||
static u32 getMemorySize(void) { return lbl_80451394; }
|
||||
|
||||
static JKRHeap* getRootHeap() { return lbl_80451378; }
|
||||
|
||||
static JKRHeap* getSystemHeap() { return lbl_80451370; }
|
||||
|
||||
static JKRHeap* getCurrentHeap() { return lbl_80451374; }
|
||||
|
||||
static void setState_u32ID_(TState* state, u32 id) { state->mId = id; }
|
||||
static void setState_uUsedSize_(TState* state, u32 usedSize) { state->mUsedSize = usedSize; }
|
||||
static void setState_u32CheckCode_(TState* state, u32 checkCode) {
|
||||
state->mCheckCode = checkCode;
|
||||
}
|
||||
static void* getState_buf_(TState* state) { return &state->mBuf; }
|
||||
static void* getState_(TState* state) { return getState_buf_(state); }
|
||||
};
|
||||
|
||||
void* operator new(u32 size);
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
lbl_802CE6E0:
|
||||
/* 802CE6E0 002CB620 7C 83 23 78 */ mr r3, r4
|
||||
/* 802CE6E4 002CB624 7F E4 FB 78 */ mr r4, r31
|
||||
/* 802CE6E8 002CB628 48 00 00 19 */ bl getSize__7JKRHeapFPv
|
||||
/* 802CE6E8 002CB628 48 00 00 19 */ bl getSize__7JKRHeapCFPv
|
||||
lbl_802CE6EC:
|
||||
/* 802CE6EC 002CB62C 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 802CE6F0 002CB630 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
/* 802CE7EC 002CB72C 48 09 39 F1 */ bl _savegpr_29
|
||||
/* 802CE7F0 002CB730 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 802CE7F4 002CB734 7C 9E 23 78 */ mr r30, r4
|
||||
/* 802CE7F8 002CB738 4B FF FF 61 */ bl getMaxFreeBlock__7JKRHeapFv
|
||||
/* 802CE7F8 002CB738 4B FF FF 61 */ bl getMaxFreeBlock__7JKRHeapCFv
|
||||
/* 802CE7FC 002CB73C 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802CE800 002CB740 7F A3 EB 78 */ mr r3, r29
|
||||
/* 802CE804 002CB744 4B FF FF 29 */ bl getFreeSize__7JKRHeapFv
|
||||
/* 802CE804 002CB744 4B FF FF 29 */ bl getFreeSize__7JKRHeapCFv
|
||||
/* 802CE808 002CB748 38 9E FF FF */ addi r4, r30, -1
|
||||
/* 802CE80C 002CB74C 57 E0 07 3E */ clrlwi r0, r31, 0x1c
|
||||
/* 802CE810 002CB750 7C 00 F0 50 */ subf r0, r0, r30
|
||||
|
||||
@@ -5,43 +5,56 @@
|
||||
#include "dolphin/types.h"
|
||||
|
||||
class JKRSolidHeap : public JKRHeap {
|
||||
public:
|
||||
struct Unknown {
|
||||
u32 field_0x0;
|
||||
u32 field_0x4;
|
||||
u32 field_0x8;
|
||||
void* field_0xc;
|
||||
Unknown* mNext;
|
||||
};
|
||||
|
||||
protected:
|
||||
JKRSolidHeap(void*, u32, JKRHeap*, bool);
|
||||
virtual ~JKRSolidHeap();
|
||||
|
||||
void adjustSize(void);
|
||||
void allocFromHead(u32, int);
|
||||
void allocFromTail(u32, int);
|
||||
s32 adjustSize(void);
|
||||
void* allocFromHead(u32, int);
|
||||
void* allocFromTail(u32, int);
|
||||
|
||||
s32 getUsedSize() const { return mSize - getTotalFreeSize(); }
|
||||
|
||||
public:
|
||||
/* vt[04] */ virtual u32 getHeapType(void); /* override */
|
||||
/* vt[05] */ virtual bool check(void); /* override */
|
||||
/* vt[04] */ virtual u32 getHeapType(void) const; /* override */
|
||||
/* vt[05] */ virtual bool check(void); /* override */
|
||||
|
||||
/* vt[07] */ virtual bool dump(void); /* override */
|
||||
/* vt[08] */ virtual void do_destroy(void); /* override */
|
||||
/* vt[09] */ virtual void* do_alloc(u32, int); /* override */
|
||||
/* vt[10] */ virtual void do_free(void*); /* override */
|
||||
/* vt[11] */ virtual void do_freeAll(void); /* override */
|
||||
/* vt[12] */ virtual void do_freeTail(void); /* override */
|
||||
/* vt[13] */ virtual void do_fillFreeArea(void); /* override */
|
||||
/* vt[14] */ virtual s32 do_resize(void*, u32); /* override */
|
||||
/* vt[15] */ virtual s32 do_getSize(void*); /* override */
|
||||
/* vt[16] */ virtual s32 do_getFreeSize(void); /* override */
|
||||
/* vt[17] */ virtual void* do_getMaxFreeBlock(void); /* override */
|
||||
/* vt[18] */ virtual s32 do_getTotalFreeSize(void); /* override */
|
||||
/* vt[07] */ virtual bool dump(void); /* override */
|
||||
/* vt[08] */ virtual void do_destroy(void); /* override */
|
||||
/* vt[09] */ virtual void* do_alloc(u32, int); /* override */
|
||||
/* vt[10] */ virtual void do_free(void*); /* override */
|
||||
/* vt[11] */ virtual void do_freeAll(void); /* override */
|
||||
/* vt[12] */ virtual void do_freeTail(void); /* override */
|
||||
/* vt[13] */ virtual void do_fillFreeArea(void); /* override */
|
||||
/* vt[14] */ virtual s32 do_resize(void*, u32); /* override */
|
||||
/* vt[15] */ virtual s32 do_getSize(void*) const; /* override */
|
||||
/* vt[16] */ virtual s32 do_getFreeSize(void) const; /* override */
|
||||
/* vt[17] */ virtual void* do_getMaxFreeBlock(void) const; /* override */
|
||||
/* vt[18] */ virtual s32 do_getTotalFreeSize(void) const; /* override */
|
||||
|
||||
/* vt[21] */ virtual void state_register(JKRHeap::TState*, u32) const; /* override */
|
||||
/* vt[22] */ virtual bool state_compare(JKRHeap::TState const&,
|
||||
JKRHeap::TState const&) const; /* override */
|
||||
|
||||
private:
|
||||
u32 mFreeSize;
|
||||
void* mSolidStart;
|
||||
void* mSolidEnd;
|
||||
u32 field_0x78;
|
||||
/* 0x00 */ // vtable
|
||||
/* 0x04 */ // JKRHeap
|
||||
/* 0x6C */ u32 mFreeSize;
|
||||
/* 0x70 */ u8* mSolidHead;
|
||||
/* 0x74 */ u8* mSolidTail;
|
||||
/* 0x78 */ Unknown* field_0x78;
|
||||
|
||||
public:
|
||||
static void create(u32, JKRHeap*, bool);
|
||||
static JKRSolidHeap* create(u32, JKRHeap*, bool);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
/* create__12JKRSolidHeapFUlP7JKRHeapb __ct__12JKRSolidHeapFPvUlP7JKRHeapb::create(unsigned long, JKRHeap *, bool) */
|
||||
/* JKRSolidHeap_NS_create */
|
||||
/* 802D0A24 002CD964 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 802D0A28 002CD968 7C 08 02 A6 */ mflr r0
|
||||
/* 802D0A2C 002CD96C 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 802D0A30 002CD970 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 802D0A34 002CD974 48 09 17 A9 */ bl _savegpr_29
|
||||
/* 802D0A38 002CD978 7C 9D 23 79 */ or. r29, r4, r4
|
||||
/* 802D0A3C 002CD97C 7C BE 2B 78 */ mr r30, r5
|
||||
/* 802D0A40 002CD980 40 82 00 08 */ bne lbl_802D0A48
|
||||
/* 802D0A44 002CD984 83 AD 8D F8 */ lwz r29, lbl_80451378-_SDA_BASE_(r13)
|
||||
lbl_802D0A48:
|
||||
/* 802D0A48 002CD988 3C 03 00 01 */ addis r0, r3, 1
|
||||
/* 802D0A4C 002CD98C 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 802D0A50 002CD990 40 82 00 10 */ bne lbl_802D0A60
|
||||
/* 802D0A54 002CD994 7F A3 EB 78 */ mr r3, r29
|
||||
/* 802D0A58 002CD998 38 80 00 10 */ li r4, 0x10
|
||||
/* 802D0A5C 002CD99C 4B FF DD 81 */ bl getMaxAllocatableSize__7JKRHeapFi
|
||||
lbl_802D0A60:
|
||||
/* 802D0A60 002CD9A0 54 7F 00 36 */ rlwinm r31, r3, 0, 0, 0x1b
|
||||
/* 802D0A64 002CD9A4 28 1F 00 80 */ cmplwi r31, 0x80
|
||||
/* 802D0A68 002CD9A8 40 80 00 0C */ bge lbl_802D0A74
|
||||
/* 802D0A6C 002CD9AC 38 60 00 00 */ li r3, 0
|
||||
/* 802D0A70 002CD9B0 48 00 00 48 */ b lbl_802D0AB8
|
||||
lbl_802D0A74:
|
||||
/* 802D0A74 002CD9B4 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802D0A78 002CD9B8 38 80 00 10 */ li r4, 0x10
|
||||
/* 802D0A7C 002CD9BC 7F A5 EB 78 */ mr r5, r29
|
||||
/* 802D0A80 002CD9C0 4B FF D9 F5 */ bl alloc__7JKRHeapFUliP7JKRHeap
|
||||
/* 802D0A84 002CD9C4 7C 60 1B 78 */ mr r0, r3
|
||||
/* 802D0A88 002CD9C8 7C 05 03 79 */ or. r5, r0, r0
|
||||
/* 802D0A8C 002CD9CC 38 85 00 80 */ addi r4, r5, 0x80
|
||||
/* 802D0A90 002CD9D0 40 82 00 0C */ bne lbl_802D0A9C
|
||||
/* 802D0A94 002CD9D4 38 60 00 00 */ li r3, 0
|
||||
/* 802D0A98 002CD9D8 48 00 00 20 */ b lbl_802D0AB8
|
||||
lbl_802D0A9C:
|
||||
/* 802D0A9C 002CD9DC 41 82 00 18 */ beq lbl_802D0AB4
|
||||
/* 802D0AA0 002CD9E0 38 BF FF 80 */ addi r5, r31, -128
|
||||
/* 802D0AA4 002CD9E4 7F A6 EB 78 */ mr r6, r29
|
||||
/* 802D0AA8 002CD9E8 7F C7 F3 78 */ mr r7, r30
|
||||
/* 802D0AAC 002CD9EC 48 00 00 85 */ bl __ct__12JKRSolidHeapFPvUlP7JKRHeapb
|
||||
/* 802D0AB0 002CD9F0 7C 60 1B 78 */ mr r0, r3
|
||||
lbl_802D0AB4:
|
||||
/* 802D0AB4 002CD9F4 7C 03 03 78 */ mr r3, r0
|
||||
lbl_802D0AB8:
|
||||
/* 802D0AB8 002CD9F8 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 802D0ABC 002CD9FC 48 09 17 6D */ bl _restgpr_29
|
||||
/* 802D0AC0 002CDA00 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 802D0AC4 002CDA04 7C 08 03 A6 */ mtlr r0
|
||||
/* 802D0AC8 002CDA08 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 802D0ACC 002CDA0C 4E 80 00 20 */ blr
|
||||
@@ -1,27 +0,0 @@
|
||||
/* do_destroy__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_destroy(void) */
|
||||
/* missing reference */
|
||||
/* 802D0AD0 002CDA10 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802D0AD4 002CDA14 7C 08 02 A6 */ mflr r0
|
||||
/* 802D0AD8 002CDA18 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802D0ADC 002CDA1C 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 802D0AE0 002CDA20 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 802D0AE4 002CDA24 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 802D0AE8 002CDA28 80 83 00 50 */ lwz r4, 0x50(r3)
|
||||
/* 802D0AEC 002CDA2C 83 E4 00 0C */ lwz r31, 0xc(r4)
|
||||
/* 802D0AF0 002CDA30 28 1F 00 00 */ cmplwi r31, 0
|
||||
/* 802D0AF4 002CDA34 41 82 00 24 */ beq lbl_802D0B18
|
||||
/* 802D0AF8 002CDA38 38 80 FF FF */ li r4, -1
|
||||
/* 802D0AFC 002CDA3C 81 83 00 00 */ lwz r12, 0(r3)
|
||||
/* 802D0B00 002CDA40 81 8C 00 08 */ lwz r12, 8(r12)
|
||||
/* 802D0B04 002CDA44 7D 89 03 A6 */ mtctr r12
|
||||
/* 802D0B08 002CDA48 4E 80 04 21 */ bctrl
|
||||
/* 802D0B0C 002CDA4C 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802D0B10 002CDA50 7F E4 FB 78 */ mr r4, r31
|
||||
/* 802D0B14 002CDA54 4B FF D9 ED */ bl free__7JKRHeapFPvP7JKRHeap
|
||||
lbl_802D0B18:
|
||||
/* 802D0B18 002CDA58 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 802D0B1C 002CDA5C 83 C1 00 08 */ lwz r30, 8(r1)
|
||||
/* 802D0B20 002CDA60 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802D0B24 002CDA64 7C 08 03 A6 */ mtlr r0
|
||||
/* 802D0B28 002CDA68 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802D0B2C 002CDA6C 4E 80 00 20 */ blr
|
||||
@@ -1,25 +0,0 @@
|
||||
/* __ct__12JKRSolidHeapFPvUlP7JKRHeapb __ct__12JKRSolidHeapFPvUlP7JKRHeapb::__ct(void *, unsigned long, JKRHeap *, bool) */
|
||||
/* JKRSolidHeap */
|
||||
/* 802D0B30 002CDA70 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802D0B34 002CDA74 7C 08 02 A6 */ mflr r0
|
||||
/* 802D0B38 002CDA78 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802D0B3C 002CDA7C 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 802D0B40 002CDA80 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802D0B44 002CDA84 4B FF D5 F5 */ bl __ct__7JKRHeapFPvUlP7JKRHeapb
|
||||
/* 802D0B48 002CDA88 3C 60 80 3D */ lis r3, lbl_803CC030@ha
|
||||
/* 802D0B4C 002CDA8C 38 03 C0 30 */ addi r0, r3, lbl_803CC030@l
|
||||
/* 802D0B50 002CDA90 90 1F 00 00 */ stw r0, 0(r31)
|
||||
/* 802D0B54 002CDA94 80 1F 00 38 */ lwz r0, 0x38(r31)
|
||||
/* 802D0B58 002CDA98 90 1F 00 6C */ stw r0, 0x6c(r31)
|
||||
/* 802D0B5C 002CDA9C 80 1F 00 30 */ lwz r0, 0x30(r31)
|
||||
/* 802D0B60 002CDAA0 90 1F 00 70 */ stw r0, 0x70(r31)
|
||||
/* 802D0B64 002CDAA4 80 1F 00 34 */ lwz r0, 0x34(r31)
|
||||
/* 802D0B68 002CDAA8 90 1F 00 74 */ stw r0, 0x74(r31)
|
||||
/* 802D0B6C 002CDAAC 38 00 00 00 */ li r0, 0
|
||||
/* 802D0B70 002CDAB0 90 1F 00 78 */ stw r0, 0x78(r31)
|
||||
/* 802D0B74 002CDAB4 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802D0B78 002CDAB8 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 802D0B7C 002CDABC 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802D0B80 002CDAC0 7C 08 03 A6 */ mtlr r0
|
||||
/* 802D0B84 002CDAC4 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802D0B88 002CDAC8 4E 80 00 20 */ blr
|
||||
@@ -1,29 +0,0 @@
|
||||
/* __dt__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::__dt(void) */
|
||||
/* missing reference */
|
||||
/* 802D0B8C 002CDACC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802D0B90 002CDAD0 7C 08 02 A6 */ mflr r0
|
||||
/* 802D0B94 002CDAD4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802D0B98 002CDAD8 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 802D0B9C 002CDADC 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 802D0BA0 002CDAE0 7C 7E 1B 79 */ or. r30, r3, r3
|
||||
/* 802D0BA4 002CDAE4 7C 9F 23 78 */ mr r31, r4
|
||||
/* 802D0BA8 002CDAE8 41 82 00 30 */ beq lbl_802D0BD8
|
||||
/* 802D0BAC 002CDAEC 3C 80 80 3D */ lis r4, lbl_803CC030@ha
|
||||
/* 802D0BB0 002CDAF0 38 04 C0 30 */ addi r0, r4, lbl_803CC030@l
|
||||
/* 802D0BB4 002CDAF4 90 1E 00 00 */ stw r0, 0(r30)
|
||||
/* 802D0BB8 002CDAF8 4B FF DF 09 */ bl dispose__7JKRHeapFv
|
||||
/* 802D0BBC 002CDAFC 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802D0BC0 002CDB00 38 80 00 00 */ li r4, 0
|
||||
/* 802D0BC4 002CDB04 4B FF D6 A1 */ bl __dt__7JKRHeapFv
|
||||
/* 802D0BC8 002CDB08 7F E0 07 35 */ extsh. r0, r31
|
||||
/* 802D0BCC 002CDB0C 40 81 00 0C */ ble lbl_802D0BD8
|
||||
/* 802D0BD0 002CDB10 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802D0BD4 002CDB14 4B FF E1 69 */ bl __dl__FPv
|
||||
lbl_802D0BD8:
|
||||
/* 802D0BD8 002CDB18 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802D0BDC 002CDB1C 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 802D0BE0 002CDB20 83 C1 00 08 */ lwz r30, 8(r1)
|
||||
/* 802D0BE4 002CDB24 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802D0BE8 002CDB28 7C 08 03 A6 */ mtlr r0
|
||||
/* 802D0BEC 002CDB2C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802D0BF0 002CDB30 4E 80 00 20 */ blr
|
||||
@@ -1,49 +0,0 @@
|
||||
/* do_alloc__12JKRSolidHeapFUli __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_alloc(unsigned long, int) */
|
||||
/* missing reference */
|
||||
/* 802D0CB0 002CDBF0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 802D0CB4 002CDBF4 7C 08 02 A6 */ mflr r0
|
||||
/* 802D0CB8 002CDBF8 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 802D0CBC 002CDBFC 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 802D0CC0 002CDC00 48 09 15 1D */ bl _savegpr_29
|
||||
/* 802D0CC4 002CDC04 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 802D0CC8 002CDC08 7C 9E 23 78 */ mr r30, r4
|
||||
/* 802D0CCC 002CDC0C 7C BF 2B 78 */ mr r31, r5
|
||||
/* 802D0CD0 002CDC10 38 7D 00 18 */ addi r3, r29, 0x18
|
||||
/* 802D0CD4 002CDC14 48 06 E3 6D */ bl OSLockMutex
|
||||
/* 802D0CD8 002CDC18 28 1E 00 04 */ cmplwi r30, 4
|
||||
/* 802D0CDC 002CDC1C 40 80 00 08 */ bge lbl_802D0CE4
|
||||
/* 802D0CE0 002CDC20 3B C0 00 04 */ li r30, 4
|
||||
lbl_802D0CE4:
|
||||
/* 802D0CE4 002CDC24 2C 1F 00 00 */ cmpwi r31, 0
|
||||
/* 802D0CE8 002CDC28 41 80 00 28 */ blt lbl_802D0D10
|
||||
/* 802D0CEC 002CDC2C 7F A3 EB 78 */ mr r3, r29
|
||||
/* 802D0CF0 002CDC30 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802D0CF4 002CDC34 2C 1F 00 04 */ cmpwi r31, 4
|
||||
/* 802D0CF8 002CDC38 38 A0 00 04 */ li r5, 4
|
||||
/* 802D0CFC 002CDC3C 41 80 00 08 */ blt lbl_802D0D04
|
||||
/* 802D0D00 002CDC40 7F E5 FB 78 */ mr r5, r31
|
||||
lbl_802D0D04:
|
||||
/* 802D0D04 002CDC44 48 00 00 55 */ bl allocFromHead__12JKRSolidHeapFUli
|
||||
/* 802D0D08 002CDC48 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802D0D0C 002CDC4C 48 00 00 28 */ b lbl_802D0D34
|
||||
lbl_802D0D10:
|
||||
/* 802D0D10 002CDC50 7C 1F 00 D0 */ neg r0, r31
|
||||
/* 802D0D14 002CDC54 2C 00 00 04 */ cmpwi r0, 4
|
||||
/* 802D0D18 002CDC58 38 A0 00 04 */ li r5, 4
|
||||
/* 802D0D1C 002CDC5C 41 80 00 08 */ blt lbl_802D0D24
|
||||
/* 802D0D20 002CDC60 7C 05 03 78 */ mr r5, r0
|
||||
lbl_802D0D24:
|
||||
/* 802D0D24 002CDC64 7F A3 EB 78 */ mr r3, r29
|
||||
/* 802D0D28 002CDC68 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802D0D2C 002CDC6C 48 00 00 F5 */ bl allocFromTail__12JKRSolidHeapFUli
|
||||
/* 802D0D30 002CDC70 7C 7F 1B 78 */ mr r31, r3
|
||||
lbl_802D0D34:
|
||||
/* 802D0D34 002CDC74 38 7D 00 18 */ addi r3, r29, 0x18
|
||||
/* 802D0D38 002CDC78 48 06 E3 E5 */ bl OSUnlockMutex
|
||||
/* 802D0D3C 002CDC7C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802D0D40 002CDC80 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 802D0D44 002CDC84 48 09 14 E5 */ bl _restgpr_29
|
||||
/* 802D0D48 002CDC88 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 802D0D4C 002CDC8C 7C 08 03 A6 */ mtlr r0
|
||||
/* 802D0D50 002CDC90 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 802D0D54 002CDC94 4E 80 00 20 */ blr
|
||||
@@ -1,14 +0,0 @@
|
||||
/* do_free__12JKRSolidHeapFPv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_free(void *) */
|
||||
/* missing reference */
|
||||
/* 802D0EE4 002CDE24 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802D0EE8 002CDE28 7C 08 02 A6 */ mflr r0
|
||||
/* 802D0EEC 002CDE2C 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802D0EF0 002CDE30 3C 60 80 3A */ lis r3, lbl_8039CE50@ha
|
||||
/* 802D0EF4 002CDE34 38 63 CE 50 */ addi r3, r3, lbl_8039CE50@l
|
||||
/* 802D0EF8 002CDE38 38 63 00 62 */ addi r3, r3, 0x62
|
||||
/* 802D0EFC 002CDE3C 4C C6 31 82 */ crclr 6
|
||||
/* 802D0F00 002CDE40 48 01 77 7D */ bl JUTWarningConsole_f
|
||||
/* 802D0F04 002CDE44 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802D0F08 002CDE48 7C 08 03 A6 */ mtlr r0
|
||||
/* 802D0F0C 002CDE4C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802D0F10 002CDE50 4E 80 00 20 */ blr
|
||||
@@ -1,26 +0,0 @@
|
||||
/* do_freeAll__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_freeAll(void) */
|
||||
/* missing reference */
|
||||
/* 802D0F14 002CDE54 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802D0F18 002CDE58 7C 08 02 A6 */ mflr r0
|
||||
/* 802D0F1C 002CDE5C 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802D0F20 002CDE60 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 802D0F24 002CDE64 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802D0F28 002CDE68 38 7F 00 18 */ addi r3, r31, 0x18
|
||||
/* 802D0F2C 002CDE6C 48 06 E1 15 */ bl OSLockMutex
|
||||
/* 802D0F30 002CDE70 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802D0F34 002CDE74 4B FF D6 41 */ bl callAllDisposer__7JKRHeapFv
|
||||
/* 802D0F38 002CDE78 80 1F 00 38 */ lwz r0, 0x38(r31)
|
||||
/* 802D0F3C 002CDE7C 90 1F 00 6C */ stw r0, 0x6c(r31)
|
||||
/* 802D0F40 002CDE80 80 1F 00 30 */ lwz r0, 0x30(r31)
|
||||
/* 802D0F44 002CDE84 90 1F 00 70 */ stw r0, 0x70(r31)
|
||||
/* 802D0F48 002CDE88 80 1F 00 34 */ lwz r0, 0x34(r31)
|
||||
/* 802D0F4C 002CDE8C 90 1F 00 74 */ stw r0, 0x74(r31)
|
||||
/* 802D0F50 002CDE90 38 00 00 00 */ li r0, 0
|
||||
/* 802D0F54 002CDE94 90 1F 00 78 */ stw r0, 0x78(r31)
|
||||
/* 802D0F58 002CDE98 38 7F 00 18 */ addi r3, r31, 0x18
|
||||
/* 802D0F5C 002CDE9C 48 06 E1 C1 */ bl OSUnlockMutex
|
||||
/* 802D0F60 002CDEA0 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 802D0F64 002CDEA4 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802D0F68 002CDEA8 7C 08 03 A6 */ mtlr r0
|
||||
/* 802D0F6C 002CDEAC 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802D0F70 002CDEB0 4E 80 00 20 */ blr
|
||||
@@ -1,40 +0,0 @@
|
||||
/* do_freeTail__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_freeTail(void) */
|
||||
/* missing reference */
|
||||
/* 802D0F74 002CDEB4 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802D0F78 002CDEB8 7C 08 02 A6 */ mflr r0
|
||||
/* 802D0F7C 002CDEBC 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802D0F80 002CDEC0 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 802D0F84 002CDEC4 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802D0F88 002CDEC8 38 7F 00 18 */ addi r3, r31, 0x18
|
||||
/* 802D0F8C 002CDECC 48 06 E0 B5 */ bl OSLockMutex
|
||||
/* 802D0F90 002CDED0 80 9F 00 74 */ lwz r4, 0x74(r31)
|
||||
/* 802D0F94 002CDED4 80 BF 00 34 */ lwz r5, 0x34(r31)
|
||||
/* 802D0F98 002CDED8 7C 04 28 40 */ cmplw r4, r5
|
||||
/* 802D0F9C 002CDEDC 41 82 00 0C */ beq lbl_802D0FA8
|
||||
/* 802D0FA0 002CDEE0 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802D0FA4 002CDEE4 4B FF DA FD */ bl dispose__7JKRHeapFPvPv
|
||||
lbl_802D0FA8:
|
||||
/* 802D0FA8 002CDEE8 80 9F 00 6C */ lwz r4, 0x6c(r31)
|
||||
/* 802D0FAC 002CDEEC 80 7F 00 74 */ lwz r3, 0x74(r31)
|
||||
/* 802D0FB0 002CDEF0 80 1F 00 34 */ lwz r0, 0x34(r31)
|
||||
/* 802D0FB4 002CDEF4 7C 03 00 50 */ subf r0, r3, r0
|
||||
/* 802D0FB8 002CDEF8 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 802D0FBC 002CDEFC 90 1F 00 6C */ stw r0, 0x6c(r31)
|
||||
/* 802D0FC0 002CDF00 80 1F 00 34 */ lwz r0, 0x34(r31)
|
||||
/* 802D0FC4 002CDF04 90 1F 00 74 */ stw r0, 0x74(r31)
|
||||
/* 802D0FC8 002CDF08 80 7F 00 78 */ lwz r3, 0x78(r31)
|
||||
/* 802D0FCC 002CDF0C 48 00 00 10 */ b lbl_802D0FDC
|
||||
lbl_802D0FD0:
|
||||
/* 802D0FD0 002CDF10 80 1F 00 34 */ lwz r0, 0x34(r31)
|
||||
/* 802D0FD4 002CDF14 90 03 00 0C */ stw r0, 0xc(r3)
|
||||
/* 802D0FD8 002CDF18 80 63 00 10 */ lwz r3, 0x10(r3)
|
||||
lbl_802D0FDC:
|
||||
/* 802D0FDC 002CDF1C 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 802D0FE0 002CDF20 40 82 FF F0 */ bne lbl_802D0FD0
|
||||
/* 802D0FE4 002CDF24 38 7F 00 18 */ addi r3, r31, 0x18
|
||||
/* 802D0FE8 002CDF28 48 06 E1 35 */ bl OSUnlockMutex
|
||||
/* 802D0FEC 002CDF2C 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 802D0FF0 002CDF30 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802D0FF4 002CDF34 7C 08 03 A6 */ mtlr r0
|
||||
/* 802D0FF8 002CDF38 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802D0FFC 002CDF3C 4E 80 00 20 */ blr
|
||||
@@ -1,3 +0,0 @@
|
||||
/* do_fillFreeArea__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_fillFreeArea(void) */
|
||||
/* missing reference */
|
||||
/* 802D1000 002CDF40 4E 80 00 20 */ blr
|
||||
@@ -1,15 +0,0 @@
|
||||
/* do_resize__12JKRSolidHeapFPvUl __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_resize(void *, unsigned long) */
|
||||
/* missing reference */
|
||||
/* 802D1004 002CDF44 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802D1008 002CDF48 7C 08 02 A6 */ mflr r0
|
||||
/* 802D100C 002CDF4C 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802D1010 002CDF50 3C 60 80 3A */ lis r3, lbl_8039CE50@ha
|
||||
/* 802D1014 002CDF54 38 63 CE 50 */ addi r3, r3, lbl_8039CE50@l
|
||||
/* 802D1018 002CDF58 38 63 00 89 */ addi r3, r3, 0x89
|
||||
/* 802D101C 002CDF5C 4C C6 31 82 */ crclr 6
|
||||
/* 802D1020 002CDF60 48 01 76 5D */ bl JUTWarningConsole_f
|
||||
/* 802D1024 002CDF64 38 60 FF FF */ li r3, -1
|
||||
/* 802D1028 002CDF68 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802D102C 002CDF6C 7C 08 03 A6 */ mtlr r0
|
||||
/* 802D1030 002CDF70 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802D1034 002CDF74 4E 80 00 20 */ blr
|
||||
@@ -1,15 +0,0 @@
|
||||
/* do_getSize__12JKRSolidHeapFPv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_getSize(void *) */
|
||||
/* missing reference */
|
||||
/* 802D1038 002CDF78 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802D103C 002CDF7C 7C 08 02 A6 */ mflr r0
|
||||
/* 802D1040 002CDF80 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802D1044 002CDF84 3C 60 80 3A */ lis r3, lbl_8039CE50@ha
|
||||
/* 802D1048 002CDF88 38 63 CE 50 */ addi r3, r3, lbl_8039CE50@l
|
||||
/* 802D104C 002CDF8C 38 63 00 B8 */ addi r3, r3, 0xb8
|
||||
/* 802D1050 002CDF90 4C C6 31 82 */ crclr 6
|
||||
/* 802D1054 002CDF94 48 01 76 29 */ bl JUTWarningConsole_f
|
||||
/* 802D1058 002CDF98 38 60 FF FF */ li r3, -1
|
||||
/* 802D105C 002CDF9C 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802D1060 002CDFA0 7C 08 03 A6 */ mtlr r0
|
||||
/* 802D1064 002CDFA4 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802D1068 002CDFA8 4E 80 00 20 */ blr
|
||||
@@ -1,39 +0,0 @@
|
||||
/* check__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::check(void) */
|
||||
/* missing reference */
|
||||
/* 802D106C 002CDFAC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802D1070 002CDFB0 7C 08 02 A6 */ mflr r0
|
||||
/* 802D1074 002CDFB4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802D1078 002CDFB8 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 802D107C 002CDFBC 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 802D1080 002CDFC0 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 802D1084 002CDFC4 38 7E 00 18 */ addi r3, r30, 0x18
|
||||
/* 802D1088 002CDFC8 48 06 DF B9 */ bl OSLockMutex
|
||||
/* 802D108C 002CDFCC 3B E0 00 01 */ li r31, 1
|
||||
/* 802D1090 002CDFD0 80 DE 00 6C */ lwz r6, 0x6c(r30)
|
||||
/* 802D1094 002CDFD4 80 7E 00 30 */ lwz r3, 0x30(r30)
|
||||
/* 802D1098 002CDFD8 80 1E 00 70 */ lwz r0, 0x70(r30)
|
||||
/* 802D109C 002CDFDC 7C 83 00 50 */ subf r4, r3, r0
|
||||
/* 802D10A0 002CDFE0 80 7E 00 74 */ lwz r3, 0x74(r30)
|
||||
/* 802D10A4 002CDFE4 80 1E 00 34 */ lwz r0, 0x34(r30)
|
||||
/* 802D10A8 002CDFE8 7C 03 00 50 */ subf r0, r3, r0
|
||||
/* 802D10AC 002CDFEC 7C A4 02 14 */ add r5, r4, r0
|
||||
/* 802D10B0 002CDFF0 7C A6 2A 14 */ add r5, r6, r5
|
||||
/* 802D10B4 002CDFF4 80 9E 00 38 */ lwz r4, 0x38(r30)
|
||||
/* 802D10B8 002CDFF8 7C 05 20 40 */ cmplw r5, r4
|
||||
/* 802D10BC 002CDFFC 41 82 00 1C */ beq lbl_802D10D8
|
||||
/* 802D10C0 002CE000 3B E0 00 00 */ li r31, 0
|
||||
/* 802D10C4 002CE004 3C 60 80 3A */ lis r3, lbl_8039CE50@ha
|
||||
/* 802D10C8 002CE008 38 63 CE 50 */ addi r3, r3, lbl_8039CE50@l
|
||||
/* 802D10CC 002CE00C 38 63 00 E6 */ addi r3, r3, 0xe6
|
||||
/* 802D10D0 002CE010 4C C6 31 82 */ crclr 6
|
||||
/* 802D10D4 002CE014 48 01 75 A9 */ bl JUTWarningConsole_f
|
||||
lbl_802D10D8:
|
||||
/* 802D10D8 002CE018 38 7E 00 18 */ addi r3, r30, 0x18
|
||||
/* 802D10DC 002CE01C 48 06 E0 41 */ bl OSUnlockMutex
|
||||
/* 802D10E0 002CE020 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802D10E4 002CE024 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 802D10E8 002CE028 83 C1 00 08 */ lwz r30, 8(r1)
|
||||
/* 802D10EC 002CE02C 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802D10F0 002CE030 7C 08 03 A6 */ mtlr r0
|
||||
/* 802D10F4 002CE034 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802D10F8 002CE038 4E 80 00 20 */ blr
|
||||
@@ -8,7 +8,7 @@
|
||||
/* 802D1210 002CE150 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 802D1214 002CE154 7C 9F 23 78 */ mr r31, r4
|
||||
/* 802D1218 002CE158 90 A4 00 14 */ stw r5, 0x14(r4)
|
||||
/* 802D121C 002CE15C 4B FF D5 69 */ bl getTotalFreeSize__7JKRHeapFv
|
||||
/* 802D121C 002CE15C 4B FF D5 69 */ bl getTotalFreeSize__7JKRHeapCFv
|
||||
/* 802D1220 002CE160 80 1E 00 38 */ lwz r0, 0x38(r30)
|
||||
/* 802D1224 002CE164 7C 03 00 50 */ subf r0, r3, r0
|
||||
/* 802D1228 002CE168 90 1F 00 00 */ stw r0, 0(r31)
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
/* state_compare__12JKRSolidHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState __ct__12JKRSolidHeapFPvUlP7JKRHeapb::state_compare( const(JKRHeap::TState const &, JKRHeap::TState const &)) */
|
||||
/* missing reference */
|
||||
/* 802D1258 002CE198 38 60 00 01 */ li r3, 1
|
||||
/* 802D125C 002CE19C 80 C4 00 04 */ lwz r6, 4(r4)
|
||||
/* 802D1260 002CE1A0 80 05 00 04 */ lwz r0, 4(r5)
|
||||
/* 802D1264 002CE1A4 7C 06 00 40 */ cmplw r6, r0
|
||||
/* 802D1268 002CE1A8 41 82 00 08 */ beq lbl_802D1270
|
||||
/* 802D126C 002CE1AC 38 60 00 00 */ li r3, 0
|
||||
lbl_802D1270:
|
||||
/* 802D1270 002CE1B0 80 84 00 00 */ lwz r4, 0(r4)
|
||||
/* 802D1274 002CE1B4 80 05 00 00 */ lwz r0, 0(r5)
|
||||
/* 802D1278 002CE1B8 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 802D127C 002CE1BC 4D 82 00 20 */ beqlr
|
||||
/* 802D1280 002CE1C0 38 60 00 00 */ li r3, 0
|
||||
/* 802D1284 002CE1C4 4E 80 00 20 */ blr
|
||||
@@ -1,5 +0,0 @@
|
||||
/* getHeapType__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::getHeapType(void) */
|
||||
/* missing reference */
|
||||
/* 802D1288 002CE1C8 3C 60 53 4C */ lis r3, 0x534C4944@ha
|
||||
/* 802D128C 002CE1CC 38 63 49 44 */ addi r3, r3, 0x534C4944@l
|
||||
/* 802D1290 002CE1D0 4E 80 00 20 */ blr
|
||||
@@ -1,4 +0,0 @@
|
||||
/* do_getFreeSize__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_getFreeSize(void) */
|
||||
/* missing reference */
|
||||
/* 802D1294 002CE1D4 80 63 00 6C */ lwz r3, 0x6c(r3)
|
||||
/* 802D1298 002CE1D8 4E 80 00 20 */ blr
|
||||
@@ -1,4 +0,0 @@
|
||||
/* do_getMaxFreeBlock__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_getMaxFreeBlock(void) */
|
||||
/* missing reference */
|
||||
/* 802D129C 002CE1DC 80 63 00 70 */ lwz r3, 0x70(r3)
|
||||
/* 802D12A0 002CE1E0 4E 80 00 20 */ blr
|
||||
@@ -1,10 +0,0 @@
|
||||
/* do_getTotalFreeSize__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_getTotalFreeSize(void) */
|
||||
/* missing reference */
|
||||
/* 802D12A4 002CE1E4 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802D12A8 002CE1E8 7C 08 02 A6 */ mflr r0
|
||||
/* 802D12AC 002CE1EC 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802D12B0 002CE1F0 4B FF D4 7D */ bl getFreeSize__7JKRHeapFv
|
||||
/* 802D12B4 002CE1F4 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802D12B8 002CE1F8 7C 08 03 A6 */ mtlr r0
|
||||
/* 802D12BC 002CE1FC 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802D12C0 002CE200 4E 80 00 20 */ blr
|
||||
Reference in New Issue
Block a user