tp/asm/gf/GFPixel.s

165 lines
8.0 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 802cde9c
.global GFSetFog
GFSetFog:
/* 802CDE9C 002CADDC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802CDEA0 002CADE0 7C 08 02 A6 */ mflr r0
/* 802CDEA4 002CADE4 90 01 00 34 */ stw r0, 0x34(r1)
/* 802CDEA8 002CADE8 39 61 00 30 */ addi r11, r1, 0x30
/* 802CDEAC 002CADEC 48 09 43 2D */ bl _savegpr_28
/* 802CDEB0 002CADF0 7C 7C 1B 78 */ mr r28, r3
/* 802CDEB4 002CADF4 7C 9F 23 78 */ mr r31, r4
/* 802CDEB8 002CADF8 FC 04 18 00 */ fcmpu cr0, f4, f3
/* 802CDEBC 002CADFC 41 82 00 0C */ beq lbl_802CDEC8
/* 802CDEC0 002CAE00 FC 02 08 00 */ fcmpu cr0, f2, f1
/* 802CDEC4 002CAE04 40 82 00 14 */ bne lbl_802CDED8
lbl_802CDEC8:
/* 802CDEC8 002CAE08 C0 A2 C5 68 */ lfs f5, lbl_80455F68-_SDA2_BASE_(r2)
/* 802CDECC 002CAE0C C0 62 C5 6C */ lfs f3, lbl_80455F6C-_SDA2_BASE_(r2)
/* 802CDED0 002CAE10 D0 A1 00 0C */ stfs f5, 0xc(r1)
/* 802CDED4 002CAE14 48 00 00 24 */ b lbl_802CDEF8
lbl_802CDED8:
/* 802CDED8 002CAE18 EC A4 00 F2 */ fmuls f5, f4, f3
/* 802CDEDC 002CAE1C EC 64 18 28 */ fsubs f3, f4, f3
/* 802CDEE0 002CAE20 EC 42 08 28 */ fsubs f2, f2, f1
/* 802CDEE4 002CAE24 EC 03 00 B2 */ fmuls f0, f3, f2
/* 802CDEE8 002CAE28 EC A5 00 24 */ fdivs f5, f5, f0
/* 802CDEEC 002CAE2C EC 64 18 24 */ fdivs f3, f4, f3
/* 802CDEF0 002CAE30 EC 01 10 24 */ fdivs f0, f1, f2
/* 802CDEF4 002CAE34 D0 01 00 0C */ stfs f0, 0xc(r1)
lbl_802CDEF8:
/* 802CDEF8 002CAE38 3B C0 00 01 */ li r30, 1
/* 802CDEFC 002CAE3C C0 22 C5 6C */ lfs f1, lbl_80455F6C-_SDA2_BASE_(r2)
/* 802CDF00 002CAE40 C8 02 C5 70 */ lfd f0, lbl_80455F70-_SDA2_BASE_(r2)
/* 802CDF04 002CAE44 48 00 00 0C */ b lbl_802CDF10
lbl_802CDF08:
/* 802CDF08 002CAE48 EC 63 00 72 */ fmuls f3, f3, f1
/* 802CDF0C 002CAE4C 3B DE 00 01 */ addi r30, r30, 1
lbl_802CDF10:
/* 802CDF10 002CAE50 FC 03 00 40 */ fcmpo cr0, f3, f0
/* 802CDF14 002CAE54 41 81 FF F4 */ bgt lbl_802CDF08
/* 802CDF18 002CAE58 C8 02 C5 80 */ lfd f0, lbl_80455F80-_SDA2_BASE_(r2)
/* 802CDF1C 002CAE5C C0 42 C5 78 */ lfs f2, lbl_80455F78-_SDA2_BASE_(r2)
/* 802CDF20 002CAE60 C0 22 C5 68 */ lfs f1, lbl_80455F68-_SDA2_BASE_(r2)
/* 802CDF24 002CAE64 48 00 00 0C */ b lbl_802CDF30
lbl_802CDF28:
/* 802CDF28 002CAE68 EC 63 00 B2 */ fmuls f3, f3, f2
/* 802CDF2C 002CAE6C 3B DE FF FF */ addi r30, r30, -1
lbl_802CDF30:
/* 802CDF30 002CAE70 FC 03 08 40 */ fcmpo cr0, f3, f1
/* 802CDF34 002CAE74 40 81 00 0C */ ble lbl_802CDF40
/* 802CDF38 002CAE78 FC 03 00 40 */ fcmpo cr0, f3, f0
/* 802CDF3C 002CAE7C 41 80 FF EC */ blt lbl_802CDF28
lbl_802CDF40:
/* 802CDF40 002CAE80 38 00 00 01 */ li r0, 1
/* 802CDF44 002CAE84 7C 00 F0 30 */ slw r0, r0, r30
/* 802CDF48 002CAE88 C8 22 C5 90 */ lfd f1, lbl_80455F90-_SDA2_BASE_(r2)
/* 802CDF4C 002CAE8C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 802CDF50 002CAE90 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CDF54 002CAE94 3C 00 43 30 */ lis r0, 0x4330
/* 802CDF58 002CAE98 90 01 00 10 */ stw r0, 0x10(r1)
/* 802CDF5C 002CAE9C C8 01 00 10 */ lfd f0, 0x10(r1)
/* 802CDF60 002CAEA0 EC 00 08 28 */ fsubs f0, f0, f1
/* 802CDF64 002CAEA4 EC 05 00 24 */ fdivs f0, f5, f0
/* 802CDF68 002CAEA8 D0 01 00 08 */ stfs f0, 8(r1)
/* 802CDF6C 002CAEAC 80 01 00 08 */ lwz r0, 8(r1)
/* 802CDF70 002CAEB0 83 A1 00 0C */ lwz r29, 0xc(r1)
/* 802CDF74 002CAEB4 38 80 00 61 */ li r4, 0x61
/* 802CDF78 002CAEB8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 802CDF7C 002CAEBC 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
/* 802CDF80 002CAEC0 54 00 A3 3E */ srwi r0, r0, 0xc
/* 802CDF84 002CAEC4 64 00 EE 00 */ oris r0, r0, 0xee00
/* 802CDF88 002CAEC8 90 03 80 00 */ stw r0, -0x8000(r3)
/* 802CDF8C 002CAECC 98 83 80 00 */ stb r4, -0x8000(r3)
/* 802CDF90 002CAED0 C0 02 C5 88 */ lfs f0, lbl_80455F88-_SDA2_BASE_(r2)
/* 802CDF94 002CAED4 EC 20 00 F2 */ fmuls f1, f0, f3
/* 802CDF98 002CAED8 48 09 41 15 */ bl func_803620AC
/* 802CDF9C 002CAEDC 64 60 EF 00 */ oris r0, r3, 0xef00
/* 802CDFA0 002CAEE0 3C C0 CC 01 */ lis r6, 0xCC008000@ha
/* 802CDFA4 002CAEE4 90 06 80 00 */ stw r0, 0xCC008000@l(r6)
/* 802CDFA8 002CAEE8 38 A0 00 61 */ li r5, 0x61
/* 802CDFAC 002CAEEC 98 A6 80 00 */ stb r5, -0x8000(r6)
/* 802CDFB0 002CAEF0 67 C0 F0 00 */ oris r0, r30, 0xf000
/* 802CDFB4 002CAEF4 90 06 80 00 */ stw r0, -0x8000(r6)
/* 802CDFB8 002CAEF8 98 A6 80 00 */ stb r5, -0x8000(r6)
/* 802CDFBC 002CAEFC 57 80 A8 14 */ slwi r0, r28, 0x15
/* 802CDFC0 002CAF00 53 A0 A3 3E */ rlwimi r0, r29, 0x14, 0xc, 0x1f
/* 802CDFC4 002CAF04 64 00 F1 00 */ oris r0, r0, 0xf100
/* 802CDFC8 002CAF08 90 06 80 00 */ stw r0, -0x8000(r6)
/* 802CDFCC 002CAF0C 88 9F 00 00 */ lbz r4, 0(r31)
/* 802CDFD0 002CAF10 88 7F 00 02 */ lbz r3, 2(r31)
/* 802CDFD4 002CAF14 88 1F 00 01 */ lbz r0, 1(r31)
/* 802CDFD8 002CAF18 50 03 44 2E */ rlwimi r3, r0, 8, 0x10, 0x17
/* 802CDFDC 002CAF1C 50 83 82 1E */ rlwimi r3, r4, 0x10, 8, 0xf
/* 802CDFE0 002CAF20 64 60 F2 00 */ oris r0, r3, 0xf200
/* 802CDFE4 002CAF24 98 A6 80 00 */ stb r5, -0x8000(r6)
/* 802CDFE8 002CAF28 90 06 80 00 */ stw r0, -0x8000(r6)
/* 802CDFEC 002CAF2C 39 61 00 30 */ addi r11, r1, 0x30
/* 802CDFF0 002CAF30 48 09 42 35 */ bl _restgpr_28
/* 802CDFF4 002CAF34 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802CDFF8 002CAF38 7C 08 03 A6 */ mtlr r0
/* 802CDFFC 002CAF3C 38 21 00 30 */ addi r1, r1, 0x30
/* 802CE000 002CAF40 4E 80 00 20 */ blr
.global GFSetBlendModeEtc
GFSetBlendModeEtc:
/* 802CE004 002CAF44 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CE008 002CAF48 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CE00C 002CAF4C 93 C1 00 08 */ stw r30, 8(r1)
/* 802CE010 002CAF50 38 00 00 61 */ li r0, 0x61
/* 802CE014 002CAF54 3D 40 CC 01 */ lis r10, 0xCC008000@ha
/* 802CE018 002CAF58 98 0A 80 00 */ stb r0, 0xCC008000@l(r10)
/* 802CE01C 002CAF5C 3B C0 00 00 */ li r30, 0
/* 802CE020 002CAF60 2C 03 00 01 */ cmpwi r3, 1
/* 802CE024 002CAF64 41 82 00 0C */ beq lbl_802CE030
/* 802CE028 002CAF68 2C 03 00 03 */ cmpwi r3, 3
/* 802CE02C 002CAF6C 40 82 00 08 */ bne lbl_802CE034
lbl_802CE030:
/* 802CE030 002CAF70 3B C0 00 01 */ li r30, 1
lbl_802CE034:
/* 802CE034 002CAF74 54 DF 60 26 */ slwi r31, r6, 0xc
/* 802CE038 002CAF78 20 03 00 03 */ subfic r0, r3, 3
/* 802CE03C 002CAF7C 7C 00 00 34 */ cntlzw r0, r0
/* 802CE040 002CAF80 54 0C 33 68 */ rlwinm r12, r0, 6, 0xd, 0x14
/* 802CE044 002CAF84 54 8B 40 2E */ slwi r11, r4, 8
/* 802CE048 002CAF88 54 AA 28 34 */ slwi r10, r5, 5
/* 802CE04C 002CAF8C 55 06 25 36 */ rlwinm r6, r8, 4, 0x14, 0x1b
/* 802CE050 002CAF90 54 E5 1D 78 */ rlwinm r5, r7, 3, 0x15, 0x1c
/* 802CE054 002CAF94 55 24 15 BA */ rlwinm r4, r9, 2, 0x16, 0x1d
/* 802CE058 002CAF98 20 03 00 02 */ subfic r0, r3, 2
/* 802CE05C 002CAF9C 7C 00 00 34 */ cntlzw r0, r0
/* 802CE060 002CAFA0 54 03 E5 FC */ rlwinm r3, r0, 0x1c, 0x17, 0x1e
/* 802CE064 002CAFA4 57 C0 06 3E */ clrlwi r0, r30, 0x18
/* 802CE068 002CAFA8 7C 60 03 78 */ or r0, r3, r0
/* 802CE06C 002CAFAC 7C 80 03 78 */ or r0, r4, r0
/* 802CE070 002CAFB0 7C A0 03 78 */ or r0, r5, r0
/* 802CE074 002CAFB4 7C C0 03 78 */ or r0, r6, r0
/* 802CE078 002CAFB8 7D 40 03 78 */ or r0, r10, r0
/* 802CE07C 002CAFBC 7D 60 03 78 */ or r0, r11, r0
/* 802CE080 002CAFC0 7D 80 03 78 */ or r0, r12, r0
/* 802CE084 002CAFC4 7F E0 03 78 */ or r0, r31, r0
/* 802CE088 002CAFC8 64 00 41 00 */ oris r0, r0, 0x4100
/* 802CE08C 002CAFCC 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 802CE090 002CAFD0 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 802CE094 002CAFD4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CE098 002CAFD8 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CE09C 002CAFDC 38 21 00 10 */ addi r1, r1, 0x10
/* 802CE0A0 002CAFE0 4E 80 00 20 */ blr
.global GFSetZMode
GFSetZMode:
/* 802CE0A4 002CAFE4 38 00 00 61 */ li r0, 0x61
/* 802CE0A8 002CAFE8 3C C0 CC 01 */ lis r6, 0xCC008000@ha
/* 802CE0AC 002CAFEC 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
/* 802CE0B0 002CAFF0 54 A5 25 36 */ rlwinm r5, r5, 4, 0x14, 0x1b
/* 802CE0B4 002CAFF4 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 802CE0B8 002CAFF8 54 80 08 3C */ slwi r0, r4, 1
/* 802CE0BC 002CAFFC 7C 60 03 78 */ or r0, r3, r0
/* 802CE0C0 002CB000 7C A0 03 78 */ or r0, r5, r0
/* 802CE0C4 002CB004 64 00 40 00 */ oris r0, r0, 0x4000
/* 802CE0C8 002CB008 90 06 80 00 */ stw r0, -0x8000(r6)
/* 802CE0CC 002CB00C 4E 80 00 20 */ blr