Files
tp/include/JSystem/JKernel/JKRAram/asm/func_802D29A0.s
T
Jonathan Wase 82d5e0f796 JKRAram and JKRAramStream (#80)
* before __register_global_object

* JKRThread::sThreadList, JKRHeap::sSystemHeap, etc.

* cleanup and started on JKRDvdArchive

* before changing JKRCompression

* more JKRDvdArchive, abs, and memset

* fixed JKRArchive::setExpandSize split

* JKRArchive::sCurrentDirID, JKRDvdFile::sDvdList, and matching JKRDvdFile constructors

* problems

* merge fixes and formatting

* updated clang version in clang-format-all to version 10

* Added OSPhysicalToCached and struct for global memory

* remove useless __attribute__

* changed from defines and macros to const variable and function

* changed FLAG_HAS to FLAG_ON

* JKRAram, linking problems

* fix JKRAram

* remove nonmatching stuff

* renamed static data

* more static class members

* JKRAramStream OK

* formatting

Co-authored-by: Julgodis <>
Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-09 20:15:52 -05:00

194 lines
9.9 KiB
ArmAsm

/* decompSZS_subroutine__FPUcPUc decompSZS_subroutine(unsigned char *, unsigned char *) */
/* decompSZS_subroutine */
/* 802D29A0 002CF8E0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D29A4 002CF8E4 7C 08 02 A6 */ mflr r0
/* 802D29A8 002CF8E8 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D29AC 002CF8EC 39 61 00 20 */ addi r11, r1, 0x20
/* 802D29B0 002CF8F0 48 08 F8 2D */ bl _savegpr_29
/* 802D29B4 002CF8F4 7C 9D 23 78 */ mr r29, r4
/* 802D29B8 002CF8F8 38 80 00 00 */ li r4, 0
/* 802D29BC 002CF8FC 38 00 00 00 */ li r0, 0
/* 802D29C0 002CF900 3B C0 00 00 */ li r30, 0
/* 802D29C4 002CF904 88 A3 00 00 */ lbz r5, 0(r3)
/* 802D29C8 002CF908 2C 05 00 59 */ cmpwi r5, 0x59
/* 802D29CC 002CF90C 40 82 00 28 */ bne lbl_802D29F4
/* 802D29D0 002CF910 88 A3 00 01 */ lbz r5, 1(r3)
/* 802D29D4 002CF914 2C 05 00 61 */ cmpwi r5, 0x61
/* 802D29D8 002CF918 40 82 00 1C */ bne lbl_802D29F4
/* 802D29DC 002CF91C 88 A3 00 02 */ lbz r5, 2(r3)
/* 802D29E0 002CF920 2C 05 00 7A */ cmpwi r5, 0x7a
/* 802D29E4 002CF924 40 82 00 10 */ bne lbl_802D29F4
/* 802D29E8 002CF928 88 A3 00 03 */ lbz r5, 3(r3)
/* 802D29EC 002CF92C 2C 05 00 30 */ cmpwi r5, 0x30
/* 802D29F0 002CF930 41 82 00 0C */ beq lbl_802D29FC
lbl_802D29F4:
/* 802D29F4 002CF934 38 60 FF FF */ li r3, -1
/* 802D29F8 002CF938 48 00 02 30 */ b lbl_802D2C28
lbl_802D29FC:
/* 802D29FC 002CF93C 80 CD 8E 70 */ lwz r6, JKRAram__fileOffset-_SDA_BASE_(r13)
/* 802D2A00 002CF940 80 A3 00 04 */ lwz r5, 4(r3)
/* 802D2A04 002CF944 7C A6 28 50 */ subf r5, r6, r5
/* 802D2A08 002CF948 7F FD 2A 14 */ add r31, r29, r5
/* 802D2A0C 002CF94C 80 AD 8E 78 */ lwz r5, JKRAram__maxDest-_SDA_BASE_(r13)
/* 802D2A10 002CF950 7C BD 2A 14 */ add r5, r29, r5
/* 802D2A14 002CF954 7C 1F 28 40 */ cmplw r31, r5
/* 802D2A18 002CF958 40 81 00 08 */ ble lbl_802D2A20
/* 802D2A1C 002CF95C 7C BF 2B 78 */ mr r31, r5
lbl_802D2A20:
/* 802D2A20 002CF960 38 63 00 10 */ addi r3, r3, 0x10
lbl_802D2A24:
/* 802D2A24 002CF964 2C 04 00 00 */ cmpwi r4, 0
/* 802D2A28 002CF968 40 82 00 2C */ bne lbl_802D2A54
/* 802D2A2C 002CF96C 80 0D 8E 68 */ lwz r0, JKRAram__srcLimit-_SDA_BASE_(r13)
/* 802D2A30 002CF970 7C 03 00 40 */ cmplw r3, r0
/* 802D2A34 002CF974 40 81 00 14 */ ble lbl_802D2A48
/* 802D2A38 002CF978 80 0D 8E 64 */ lwz r0, JKRAram__transLeft-_SDA_BASE_(r13)
/* 802D2A3C 002CF97C 28 00 00 00 */ cmplwi r0, 0
/* 802D2A40 002CF980 41 82 00 08 */ beq lbl_802D2A48
/* 802D2A44 002CF984 48 00 02 A1 */ bl nextSrcData__FPUc
lbl_802D2A48:
/* 802D2A48 002CF988 88 03 00 00 */ lbz r0, 0(r3)
/* 802D2A4C 002CF98C 38 80 00 08 */ li r4, 8
/* 802D2A50 002CF990 38 63 00 01 */ addi r3, r3, 1
lbl_802D2A54:
/* 802D2A54 002CF994 54 05 06 31 */ rlwinm. r5, r0, 0, 0x18, 0x18
/* 802D2A58 002CF998 41 82 00 94 */ beq lbl_802D2AEC
/* 802D2A5C 002CF99C 80 CD 8E 70 */ lwz r6, JKRAram__fileOffset-_SDA_BASE_(r13)
/* 802D2A60 002CF9A0 28 06 00 00 */ cmplwi r6, 0
/* 802D2A64 002CF9A4 41 82 00 5C */ beq lbl_802D2AC0
/* 802D2A68 002CF9A8 80 AD 8E 74 */ lwz r5, JKRAram__readCount-_SDA_BASE_(r13)
/* 802D2A6C 002CF9AC 7C 05 30 40 */ cmplw r5, r6
/* 802D2A70 002CF9B0 41 80 00 1C */ blt lbl_802D2A8C
/* 802D2A74 002CF9B4 88 A3 00 00 */ lbz r5, 0(r3)
/* 802D2A78 002CF9B8 98 BD 00 00 */ stb r5, 0(r29)
/* 802D2A7C 002CF9BC 3B BD 00 01 */ addi r29, r29, 1
/* 802D2A80 002CF9C0 7C 1D F8 40 */ cmplw r29, r31
/* 802D2A84 002CF9C4 3B DE 00 01 */ addi r30, r30, 1
/* 802D2A88 002CF9C8 41 82 01 94 */ beq lbl_802D2C1C
lbl_802D2A8C:
/* 802D2A8C 002CF9CC 88 E3 00 00 */ lbz r7, 0(r3)
/* 802D2A90 002CF9D0 80 CD 8E 5C */ lwz r6, JKRAram__refCurrent-_SDA_BASE_(r13)
/* 802D2A94 002CF9D4 38 A6 00 01 */ addi r5, r6, 1
/* 802D2A98 002CF9D8 90 AD 8E 5C */ stw r5, JKRAram__refCurrent-_SDA_BASE_(r13)
/* 802D2A9C 002CF9DC 98 E6 00 00 */ stb r7, 0(r6)
/* 802D2AA0 002CF9E0 80 CD 8E 5C */ lwz r6, JKRAram__refCurrent-_SDA_BASE_(r13)
/* 802D2AA4 002CF9E4 80 AD 8E 58 */ lwz r5, JKRAram__refEnd-_SDA_BASE_(r13)
/* 802D2AA8 002CF9E8 7C 06 28 40 */ cmplw r6, r5
/* 802D2AAC 002CF9EC 40 82 00 0C */ bne lbl_802D2AB8
/* 802D2AB0 002CF9F0 80 AD 8E 54 */ lwz r5, JKRAram__refBuf-_SDA_BASE_(r13)
/* 802D2AB4 002CF9F4 90 AD 8E 5C */ stw r5, JKRAram__refCurrent-_SDA_BASE_(r13)
lbl_802D2AB8:
/* 802D2AB8 002CF9F8 38 63 00 01 */ addi r3, r3, 1
/* 802D2ABC 002CF9FC 48 00 00 20 */ b lbl_802D2ADC
lbl_802D2AC0:
/* 802D2AC0 002CFA00 88 A3 00 00 */ lbz r5, 0(r3)
/* 802D2AC4 002CFA04 98 BD 00 00 */ stb r5, 0(r29)
/* 802D2AC8 002CFA08 3B BD 00 01 */ addi r29, r29, 1
/* 802D2ACC 002CFA0C 7C 1D F8 40 */ cmplw r29, r31
/* 802D2AD0 002CFA10 38 63 00 01 */ addi r3, r3, 1
/* 802D2AD4 002CFA14 3B DE 00 01 */ addi r30, r30, 1
/* 802D2AD8 002CFA18 41 82 01 44 */ beq lbl_802D2C1C
lbl_802D2ADC:
/* 802D2ADC 002CFA1C 80 AD 8E 74 */ lwz r5, JKRAram__readCount-_SDA_BASE_(r13)
/* 802D2AE0 002CFA20 38 A5 00 01 */ addi r5, r5, 1
/* 802D2AE4 002CFA24 90 AD 8E 74 */ stw r5, JKRAram__readCount-_SDA_BASE_(r13)
/* 802D2AE8 002CFA28 48 00 01 24 */ b lbl_802D2C0C
lbl_802D2AEC:
/* 802D2AEC 002CFA2C 88 C3 00 00 */ lbz r6, 0(r3)
/* 802D2AF0 002CFA30 88 E3 00 01 */ lbz r7, 1(r3)
/* 802D2AF4 002CFA34 50 C7 45 2E */ rlwimi r7, r6, 8, 0x14, 0x17
/* 802D2AF8 002CFA38 7C C5 26 70 */ srawi r5, r6, 4
/* 802D2AFC 002CFA3C 81 0D 8E 70 */ lwz r8, JKRAram__fileOffset-_SDA_BASE_(r13)
/* 802D2B00 002CFA40 28 08 00 00 */ cmplwi r8, 0
/* 802D2B04 002CFA44 38 63 00 02 */ addi r3, r3, 2
/* 802D2B08 002CFA48 41 82 00 2C */ beq lbl_802D2B34
/* 802D2B0C 002CFA4C 80 CD 8E 5C */ lwz r6, JKRAram__refCurrent-_SDA_BASE_(r13)
/* 802D2B10 002CFA50 7C C7 30 50 */ subf r6, r7, r6
/* 802D2B14 002CFA54 39 26 FF FF */ addi r9, r6, -1
/* 802D2B18 002CFA58 80 ED 8E 54 */ lwz r7, JKRAram__refBuf-_SDA_BASE_(r13)
/* 802D2B1C 002CFA5C 7C 09 38 40 */ cmplw r9, r7
/* 802D2B20 002CFA60 40 80 00 1C */ bge lbl_802D2B3C
/* 802D2B24 002CFA64 80 CD 8E 58 */ lwz r6, JKRAram__refEnd-_SDA_BASE_(r13)
/* 802D2B28 002CFA68 7C C7 30 50 */ subf r6, r7, r6
/* 802D2B2C 002CFA6C 7D 29 32 14 */ add r9, r9, r6
/* 802D2B30 002CFA70 48 00 00 0C */ b lbl_802D2B3C
lbl_802D2B34:
/* 802D2B34 002CFA74 7C C7 E8 50 */ subf r6, r7, r29
/* 802D2B38 002CFA78 39 26 FF FF */ addi r9, r6, -1
lbl_802D2B3C:
/* 802D2B3C 002CFA7C 2C 05 00 00 */ cmpwi r5, 0
/* 802D2B40 002CFA80 40 82 00 14 */ bne lbl_802D2B54
/* 802D2B44 002CFA84 88 A3 00 00 */ lbz r5, 0(r3)
/* 802D2B48 002CFA88 38 A5 00 12 */ addi r5, r5, 0x12
/* 802D2B4C 002CFA8C 38 63 00 01 */ addi r3, r3, 1
/* 802D2B50 002CFA90 48 00 00 08 */ b lbl_802D2B58
lbl_802D2B54:
/* 802D2B54 002CFA94 38 A5 00 02 */ addi r5, r5, 2
lbl_802D2B58:
/* 802D2B58 002CFA98 28 08 00 00 */ cmplwi r8, 0
/* 802D2B5C 002CFA9C 41 82 00 80 */ beq lbl_802D2BDC
lbl_802D2B60:
/* 802D2B60 002CFAA0 80 ED 8E 74 */ lwz r7, JKRAram__readCount-_SDA_BASE_(r13)
/* 802D2B64 002CFAA4 80 CD 8E 70 */ lwz r6, JKRAram__fileOffset-_SDA_BASE_(r13)
/* 802D2B68 002CFAA8 7C 07 30 40 */ cmplw r7, r6
/* 802D2B6C 002CFAAC 41 80 00 1C */ blt lbl_802D2B88
/* 802D2B70 002CFAB0 88 C9 00 00 */ lbz r6, 0(r9)
/* 802D2B74 002CFAB4 98 DD 00 00 */ stb r6, 0(r29)
/* 802D2B78 002CFAB8 3B BD 00 01 */ addi r29, r29, 1
/* 802D2B7C 002CFABC 7C 1D F8 40 */ cmplw r29, r31
/* 802D2B80 002CFAC0 3B DE 00 01 */ addi r30, r30, 1
/* 802D2B84 002CFAC4 41 82 00 88 */ beq lbl_802D2C0C
lbl_802D2B88:
/* 802D2B88 002CFAC8 89 09 00 00 */ lbz r8, 0(r9)
/* 802D2B8C 002CFACC 80 ED 8E 5C */ lwz r7, JKRAram__refCurrent-_SDA_BASE_(r13)
/* 802D2B90 002CFAD0 38 C7 00 01 */ addi r6, r7, 1
/* 802D2B94 002CFAD4 90 CD 8E 5C */ stw r6, JKRAram__refCurrent-_SDA_BASE_(r13)
/* 802D2B98 002CFAD8 99 07 00 00 */ stb r8, 0(r7)
/* 802D2B9C 002CFADC 80 CD 8E 5C */ lwz r6, JKRAram__refCurrent-_SDA_BASE_(r13)
/* 802D2BA0 002CFAE0 80 ED 8E 58 */ lwz r7, JKRAram__refEnd-_SDA_BASE_(r13)
/* 802D2BA4 002CFAE4 7C 06 38 40 */ cmplw r6, r7
/* 802D2BA8 002CFAE8 40 82 00 0C */ bne lbl_802D2BB4
/* 802D2BAC 002CFAEC 80 CD 8E 54 */ lwz r6, JKRAram__refBuf-_SDA_BASE_(r13)
/* 802D2BB0 002CFAF0 90 CD 8E 5C */ stw r6, JKRAram__refCurrent-_SDA_BASE_(r13)
lbl_802D2BB4:
/* 802D2BB4 002CFAF4 39 29 00 01 */ addi r9, r9, 1
/* 802D2BB8 002CFAF8 7C 09 38 40 */ cmplw r9, r7
/* 802D2BBC 002CFAFC 40 82 00 08 */ bne lbl_802D2BC4
/* 802D2BC0 002CFB00 81 2D 8E 54 */ lwz r9, JKRAram__refBuf-_SDA_BASE_(r13)
lbl_802D2BC4:
/* 802D2BC4 002CFB04 80 CD 8E 74 */ lwz r6, JKRAram__readCount-_SDA_BASE_(r13)
/* 802D2BC8 002CFB08 38 C6 00 01 */ addi r6, r6, 1
/* 802D2BCC 002CFB0C 90 CD 8E 74 */ stw r6, JKRAram__readCount-_SDA_BASE_(r13)
/* 802D2BD0 002CFB10 34 A5 FF FF */ addic. r5, r5, -1
/* 802D2BD4 002CFB14 40 82 FF 8C */ bne lbl_802D2B60
/* 802D2BD8 002CFB18 48 00 00 34 */ b lbl_802D2C0C
lbl_802D2BDC:
/* 802D2BDC 002CFB1C 88 C9 00 00 */ lbz r6, 0(r9)
/* 802D2BE0 002CFB20 98 DD 00 00 */ stb r6, 0(r29)
/* 802D2BE4 002CFB24 3B BD 00 01 */ addi r29, r29, 1
/* 802D2BE8 002CFB28 7C 1D F8 40 */ cmplw r29, r31
/* 802D2BEC 002CFB2C 3B DE 00 01 */ addi r30, r30, 1
/* 802D2BF0 002CFB30 41 82 00 1C */ beq lbl_802D2C0C
/* 802D2BF4 002CFB34 80 CD 8E 74 */ lwz r6, JKRAram__readCount-_SDA_BASE_(r13)
/* 802D2BF8 002CFB38 38 C6 00 01 */ addi r6, r6, 1
/* 802D2BFC 002CFB3C 90 CD 8E 74 */ stw r6, JKRAram__readCount-_SDA_BASE_(r13)
/* 802D2C00 002CFB40 34 A5 FF FF */ addic. r5, r5, -1
/* 802D2C04 002CFB44 39 29 00 01 */ addi r9, r9, 1
/* 802D2C08 002CFB48 40 82 FF D4 */ bne lbl_802D2BDC
lbl_802D2C0C:
/* 802D2C0C 002CFB4C 54 00 08 3C */ slwi r0, r0, 1
/* 802D2C10 002CFB50 7C 1D F8 40 */ cmplw r29, r31
/* 802D2C14 002CFB54 38 84 FF FF */ addi r4, r4, -1
/* 802D2C18 002CFB58 41 80 FE 0C */ blt lbl_802D2A24
lbl_802D2C1C:
/* 802D2C1C 002CFB5C 80 6D 8E 80 */ lwz r3, JKRAram__tsPtr-_SDA_BASE_(r13)
/* 802D2C20 002CFB60 93 C3 00 00 */ stw r30, 0(r3)
/* 802D2C24 002CFB64 38 60 00 00 */ li r3, 0
lbl_802D2C28:
/* 802D2C28 002CFB68 39 61 00 20 */ addi r11, r1, 0x20
/* 802D2C2C 002CFB6C 48 08 F5 FD */ bl _restgpr_29
/* 802D2C30 002CFB70 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D2C34 002CFB74 7C 08 03 A6 */ mtlr r0
/* 802D2C38 002CFB78 38 21 00 20 */ addi r1, r1, 0x20
/* 802D2C3C 002CFB7C 4E 80 00 20 */ blr