summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-10-01 11:56:47 -0400
committerMax <mparisi@stevens.edu>2020-10-01 11:56:47 -0400
commit376a15a77ab1225b0437adc3d89cbf124cea279f (patch)
tree011d7759ff42a217a5164f5c2ef7638423b46b7f
parent20cfadbe2bbd6bcaac7d6f9d8107b05ca5747a4d (diff)
split PPCArch.s
-rw-r--r--Makefile4
-rw-r--r--asm/SDK/base/PPCArch.s170
-rw-r--r--asm/text_7.s167
-rw-r--r--obj_files.mk1
4 files changed, 173 insertions, 169 deletions
diff --git a/Makefile b/Makefile
index 71a0615..170f80a 100644
--- a/Makefile
+++ b/Makefile
@@ -28,11 +28,11 @@ TARGET := pbr_pal
BUILD_DIR := build/$(TARGET)
-SRC_DIRS := src src/SDK/OS src/SDK/HBM src/MSL_C/MSL_Common src/MSL_C/MSL_Common_Embedded \
+SRC_DIRS := src src/SDK/OS src/SDK/base src/SDK/HBM src/MSL_C/MSL_Common src/MSL_C/MSL_Common_Embedded \
src/MSL_C/MSL_Common_Embedded/Math src/MSL_C/PPC_EABI src/Runtime \
src/MetroTRK src/GameSpy src/nw4r/ut src/nw4r/snd src/nw4r/ut/detail \
src/nw4r/snd/detail src/nw4r/math src/nw4r/lyt src/nw4r/lyt/detail
-ASM_DIRS := asm asm/SDK/OS asm/SDK/HBM asm/MSL_C/MSL_Common asm/MSL_C/MSL_Common_Embedded \
+ASM_DIRS := asm asm/SDK/OS asm/SDK/base asm/SDK/HBM asm/MSL_C/MSL_Common asm/MSL_C/MSL_Common_Embedded \
asm/MSL_C/MSL_Common_Embedded/Math asm/MSL_C/PPC_EABI asm/Runtime \
asm/MetroTRK asm/GameSpy asm/nw4r/ut asm/nw4r/snd asm/nw4r/ut/detail \
asm/nw4r/snd/detail asm/nw4r/math asm/nw4r/lyt asm/nw4r/lyt/detail
diff --git a/asm/SDK/base/PPCArch.s b/asm/SDK/base/PPCArch.s
new file mode 100644
index 0000000..983797e
--- /dev/null
+++ b/asm/SDK/base/PPCArch.s
@@ -0,0 +1,170 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global PPCMfmsr
+PPCMfmsr:
+/* 80268228 00263E88 7C 60 00 A6 */ mfmsr r3
+/* 8026822C 00263E8C 4E 80 00 20 */ blr
+
+.global PPCMtmsr
+PPCMtmsr:
+/* 80268230 00263E90 7C 60 01 24 */ mtmsr r3
+/* 80268234 00263E94 4E 80 00 20 */ blr
+
+.global PPCMfhid0
+PPCMfhid0:
+/* 80268238 00263E98 7C 70 FA A6 */ mfspr r3, 0x3f0
+/* 8026823C 00263E9C 4E 80 00 20 */ blr
+
+.global PPCMthid0
+PPCMthid0:
+/* 80268240 00263EA0 7C 70 FB A6 */ mtspr 0x3f0, r3
+/* 80268244 00263EA4 4E 80 00 20 */ blr
+
+.global PPCMfl2cr
+PPCMfl2cr:
+/* 80268248 00263EA8 7C 79 FA A6 */ mfspr r3, 0x3f9
+/* 8026824C 00263EAC 4E 80 00 20 */ blr
+
+.global PPCMtl2cr
+PPCMtl2cr:
+/* 80268250 00263EB0 7C 79 FB A6 */ mtspr 0x3f9, r3
+/* 80268254 00263EB4 4E 80 00 20 */ blr
+
+.global PPCMtdec
+PPCMtdec:
+/* 80268258 00263EB8 7C 76 03 A6 */ mtspr 0x16, r3
+/* 8026825C 00263EBC 4E 80 00 20 */ blr
+
+.global PPCSync
+PPCSync:
+/* 80268260 00263EC0 44 00 00 02 */ sc
+/* 80268264 00263EC4 4E 80 00 20 */ blr
+
+.global PPCHalt
+PPCHalt:
+/* 80268268 00263EC8 7C 00 04 AC */ sync 0
+lbl_8026826C:
+/* 8026826C 00263ECC 60 00 00 00 */ nop
+/* 80268270 00263ED0 38 60 00 00 */ li r3, 0
+/* 80268274 00263ED4 60 00 00 00 */ nop
+/* 80268278 00263ED8 4B FF FF F4 */ b lbl_8026826C
+
+.global PPCMtmmcr0
+PPCMtmmcr0:
+/* 8026827C 00263EDC 7C 78 EB A6 */ mtspr 0x3b8, r3
+/* 80268280 00263EE0 4E 80 00 20 */ blr
+
+.global PPCMtmmcr1
+PPCMtmmcr1:
+/* 80268284 00263EE4 7C 7C EB A6 */ mtspr 0x3bc, r3
+/* 80268288 00263EE8 4E 80 00 20 */ blr
+
+.global PPCMtpmc1
+PPCMtpmc1:
+/* 8026828C 00263EEC 7C 79 EB A6 */ mtspr 0x3b9, r3
+/* 80268290 00263EF0 4E 80 00 20 */ blr
+
+.global PPCMtpmc2
+PPCMtpmc2:
+/* 80268294 00263EF4 7C 7A EB A6 */ mtspr 0x3ba, r3
+/* 80268298 00263EF8 4E 80 00 20 */ blr
+
+.global PPCMtpmc3
+PPCMtpmc3:
+/* 8026829C 00263EFC 7C 7D EB A6 */ mtspr 0x3bd, r3
+/* 802682A0 00263F00 4E 80 00 20 */ blr
+
+.global PPCMtpmc4
+PPCMtpmc4:
+/* 802682A4 00263F04 7C 7E EB A6 */ mtspr 0x3be, r3
+/* 802682A8 00263F08 4E 80 00 20 */ blr
+
+.global PPCMffpscr
+PPCMffpscr:
+/* 802682AC 00263F0C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802682B0 00263F10 DB E1 00 18 */ stfd f31, 0x18(r1)
+/* 802682B4 00263F14 FF E0 04 8E */ mffs f31
+/* 802682B8 00263F18 DB E1 00 08 */ stfd f31, 8(r1)
+/* 802682BC 00263F1C CB E1 00 18 */ lfd f31, 0x18(r1)
+/* 802682C0 00263F20 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 802682C4 00263F24 38 21 00 20 */ addi r1, r1, 0x20
+/* 802682C8 00263F28 4E 80 00 20 */ blr
+
+.global PPCMtfpscr
+PPCMtfpscr:
+/* 802682CC 00263F2C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802682D0 00263F30 DB E1 00 18 */ stfd f31, 0x18(r1)
+/* 802682D4 00263F34 38 80 00 00 */ li r4, 0
+/* 802682D8 00263F38 90 61 00 0C */ stw r3, 0xc(r1)
+/* 802682DC 00263F3C 90 81 00 08 */ stw r4, 8(r1)
+/* 802682E0 00263F40 CB E1 00 08 */ lfd f31, 8(r1)
+/* 802682E4 00263F44 FD FE FD 8E */ mtfsf 0xff, f31
+/* 802682E8 00263F48 CB E1 00 18 */ lfd f31, 0x18(r1)
+/* 802682EC 00263F4C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802682F0 00263F50 4E 80 00 20 */ blr
+
+.global PPCMfhid2
+PPCMfhid2:
+/* 802682F4 00263F54 7C 78 E2 A6 */ mfspr r3, 0x398
+/* 802682F8 00263F58 4E 80 00 20 */ blr
+
+.global PPCMthid2
+PPCMthid2:
+/* 802682FC 00263F5C 7C 78 E3 A6 */ mtspr 0x398, r3
+/* 80268300 00263F60 4E 80 00 20 */ blr
+
+.global PPCMfwpar
+PPCMfwpar:
+/* 80268304 00263F64 7C 00 04 AC */ sync 0
+/* 80268308 00263F68 7C 79 E2 A6 */ mfspr r3, 0x399
+/* 8026830C 00263F6C 4E 80 00 20 */ blr
+
+.global PPCMtwpar
+PPCMtwpar:
+/* 80268310 00263F70 7C 79 E3 A6 */ mtspr 0x399, r3
+/* 80268314 00263F74 4E 80 00 20 */ blr
+
+.global PPCDisableSpeculation
+PPCDisableSpeculation:
+/* 80268318 00263F78 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026831C 00263F7C 7C 08 02 A6 */ mflr r0
+/* 80268320 00263F80 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80268324 00263F84 4B FF FF 15 */ bl PPCMfhid0
+/* 80268328 00263F88 60 63 02 00 */ ori r3, r3, 0x200
+/* 8026832C 00263F8C 4B FF FF 15 */ bl PPCMthid0
+/* 80268330 00263F90 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80268334 00263F94 7C 08 03 A6 */ mtlr r0
+/* 80268338 00263F98 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026833C 00263F9C 4E 80 00 20 */ blr
+
+.global PPCSetFpNonIEEEMode
+PPCSetFpNonIEEEMode:
+/* 80268340 00263FA0 FF A0 00 4C */ mtfsb1 0x1d
+/* 80268344 00263FA4 4E 80 00 20 */ blr
+
+.global PPCMthid4
+PPCMthid4:
+/* 80268348 00263FA8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026834C 00263FAC 7C 08 02 A6 */ mflr r0
+/* 80268350 00263FB0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80268354 00263FB4 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0
+/* 80268358 00263FB8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026835C 00263FBC 7C 7F 1B 78 */ mr r31, r3
+/* 80268360 00263FC0 41 82 00 0C */ beq lbl_8026836C
+/* 80268364 00263FC4 7C 73 FB A6 */ mtspr 0x3f3, r3
+/* 80268368 00263FC8 48 00 00 1C */ b lbl_80268384
+lbl_8026836C:
+/* 8026836C 00263FCC 3C 60 80 42 */ lis r3, lbl_804265A8@ha
+/* 80268370 00263FD0 38 63 65 A8 */ addi r3, r3, lbl_804265A8@l
+/* 80268374 00263FD4 4C C6 31 82 */ crclr 6
+/* 80268378 00263FD8 4B D9 F7 4D */ bl func_80007AC4
+/* 8026837C 00263FDC 67 FF 80 00 */ oris r31, r31, 0x8000
+/* 80268380 00263FE0 7F F3 FB A6 */ mtspr 0x3f3, r31
+lbl_80268384:
+/* 80268384 00263FE4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80268388 00263FE8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026838C 00263FEC 7C 08 03 A6 */ mtlr r0
+/* 80268390 00263FF0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80268394 00263FF4 4E 80 00 20 */ blr
diff --git a/asm/text_7.s b/asm/text_7.s
index b8698cb..a291284 100644
--- a/asm/text_7.s
+++ b/asm/text_7.s
@@ -80626,170 +80626,3 @@ func_80268208:
/* 8026821C 00263E7C B0 83 00 02 */ sth r4, 2(r3)
/* 80268220 00263E80 98 03 00 04 */ stb r0, 4(r3)
/* 80268224 00263E84 4E 80 00 20 */ blr
-
-.global PPCMfmsr
-PPCMfmsr:
-/* 80268228 00263E88 7C 60 00 A6 */ mfmsr r3
-/* 8026822C 00263E8C 4E 80 00 20 */ blr
-
-.global PPCMtmsr
-PPCMtmsr:
-/* 80268230 00263E90 7C 60 01 24 */ mtmsr r3
-/* 80268234 00263E94 4E 80 00 20 */ blr
-
-.global PPCMfhid0
-PPCMfhid0:
-/* 80268238 00263E98 7C 70 FA A6 */ mfspr r3, 0x3f0
-/* 8026823C 00263E9C 4E 80 00 20 */ blr
-
-.global PPCMthid0
-PPCMthid0:
-/* 80268240 00263EA0 7C 70 FB A6 */ mtspr 0x3f0, r3
-/* 80268244 00263EA4 4E 80 00 20 */ blr
-
-.global PPCMfl2cr
-PPCMfl2cr:
-/* 80268248 00263EA8 7C 79 FA A6 */ mfspr r3, 0x3f9
-/* 8026824C 00263EAC 4E 80 00 20 */ blr
-
-.global PPCMtl2cr
-PPCMtl2cr:
-/* 80268250 00263EB0 7C 79 FB A6 */ mtspr 0x3f9, r3
-/* 80268254 00263EB4 4E 80 00 20 */ blr
-
-.global PPCMtdec
-PPCMtdec:
-/* 80268258 00263EB8 7C 76 03 A6 */ mtspr 0x16, r3
-/* 8026825C 00263EBC 4E 80 00 20 */ blr
-
-.global PPCSync
-PPCSync:
-/* 80268260 00263EC0 44 00 00 02 */ sc
-/* 80268264 00263EC4 4E 80 00 20 */ blr
-
-.global PPCHalt
-PPCHalt:
-/* 80268268 00263EC8 7C 00 04 AC */ sync 0
-lbl_8026826C:
-/* 8026826C 00263ECC 60 00 00 00 */ nop
-/* 80268270 00263ED0 38 60 00 00 */ li r3, 0
-/* 80268274 00263ED4 60 00 00 00 */ nop
-/* 80268278 00263ED8 4B FF FF F4 */ b lbl_8026826C
-
-.global PPCMtmmcr0
-PPCMtmmcr0:
-/* 8026827C 00263EDC 7C 78 EB A6 */ mtspr 0x3b8, r3
-/* 80268280 00263EE0 4E 80 00 20 */ blr
-
-.global PPCMtmmcr1
-PPCMtmmcr1:
-/* 80268284 00263EE4 7C 7C EB A6 */ mtspr 0x3bc, r3
-/* 80268288 00263EE8 4E 80 00 20 */ blr
-
-.global PPCMtpmc1
-PPCMtpmc1:
-/* 8026828C 00263EEC 7C 79 EB A6 */ mtspr 0x3b9, r3
-/* 80268290 00263EF0 4E 80 00 20 */ blr
-
-.global PPCMtpmc2
-PPCMtpmc2:
-/* 80268294 00263EF4 7C 7A EB A6 */ mtspr 0x3ba, r3
-/* 80268298 00263EF8 4E 80 00 20 */ blr
-
-.global PPCMtpmc3
-PPCMtpmc3:
-/* 8026829C 00263EFC 7C 7D EB A6 */ mtspr 0x3bd, r3
-/* 802682A0 00263F00 4E 80 00 20 */ blr
-
-.global PPCMtpmc4
-PPCMtpmc4:
-/* 802682A4 00263F04 7C 7E EB A6 */ mtspr 0x3be, r3
-/* 802682A8 00263F08 4E 80 00 20 */ blr
-
-.global PPCMffpscr
-PPCMffpscr:
-/* 802682AC 00263F0C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802682B0 00263F10 DB E1 00 18 */ stfd f31, 0x18(r1)
-/* 802682B4 00263F14 FF E0 04 8E */ mffs f31
-/* 802682B8 00263F18 DB E1 00 08 */ stfd f31, 8(r1)
-/* 802682BC 00263F1C CB E1 00 18 */ lfd f31, 0x18(r1)
-/* 802682C0 00263F20 80 61 00 0C */ lwz r3, 0xc(r1)
-/* 802682C4 00263F24 38 21 00 20 */ addi r1, r1, 0x20
-/* 802682C8 00263F28 4E 80 00 20 */ blr
-
-.global PPCMtfpscr
-PPCMtfpscr:
-/* 802682CC 00263F2C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802682D0 00263F30 DB E1 00 18 */ stfd f31, 0x18(r1)
-/* 802682D4 00263F34 38 80 00 00 */ li r4, 0
-/* 802682D8 00263F38 90 61 00 0C */ stw r3, 0xc(r1)
-/* 802682DC 00263F3C 90 81 00 08 */ stw r4, 8(r1)
-/* 802682E0 00263F40 CB E1 00 08 */ lfd f31, 8(r1)
-/* 802682E4 00263F44 FD FE FD 8E */ mtfsf 0xff, f31
-/* 802682E8 00263F48 CB E1 00 18 */ lfd f31, 0x18(r1)
-/* 802682EC 00263F4C 38 21 00 20 */ addi r1, r1, 0x20
-/* 802682F0 00263F50 4E 80 00 20 */ blr
-
-.global PPCMfhid2
-PPCMfhid2:
-/* 802682F4 00263F54 7C 78 E2 A6 */ mfspr r3, 0x398
-/* 802682F8 00263F58 4E 80 00 20 */ blr
-
-.global PPCMthid2
-PPCMthid2:
-/* 802682FC 00263F5C 7C 78 E3 A6 */ mtspr 0x398, r3
-/* 80268300 00263F60 4E 80 00 20 */ blr
-
-.global PPCMfwpar
-PPCMfwpar:
-/* 80268304 00263F64 7C 00 04 AC */ sync 0
-/* 80268308 00263F68 7C 79 E2 A6 */ mfspr r3, 0x399
-/* 8026830C 00263F6C 4E 80 00 20 */ blr
-
-.global PPCMtwpar
-PPCMtwpar:
-/* 80268310 00263F70 7C 79 E3 A6 */ mtspr 0x399, r3
-/* 80268314 00263F74 4E 80 00 20 */ blr
-
-.global PPCDisableSpeculation
-PPCDisableSpeculation:
-/* 80268318 00263F78 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8026831C 00263F7C 7C 08 02 A6 */ mflr r0
-/* 80268320 00263F80 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80268324 00263F84 4B FF FF 15 */ bl PPCMfhid0
-/* 80268328 00263F88 60 63 02 00 */ ori r3, r3, 0x200
-/* 8026832C 00263F8C 4B FF FF 15 */ bl PPCMthid0
-/* 80268330 00263F90 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80268334 00263F94 7C 08 03 A6 */ mtlr r0
-/* 80268338 00263F98 38 21 00 10 */ addi r1, r1, 0x10
-/* 8026833C 00263F9C 4E 80 00 20 */ blr
-
-.global PPCSetFpNonIEEEMode
-PPCSetFpNonIEEEMode:
-/* 80268340 00263FA0 FF A0 00 4C */ mtfsb1 0x1d
-/* 80268344 00263FA4 4E 80 00 20 */ blr
-
-.global PPCMthid4
-PPCMthid4:
-/* 80268348 00263FA8 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8026834C 00263FAC 7C 08 02 A6 */ mflr r0
-/* 80268350 00263FB0 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80268354 00263FB4 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0
-/* 80268358 00263FB8 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8026835C 00263FBC 7C 7F 1B 78 */ mr r31, r3
-/* 80268360 00263FC0 41 82 00 0C */ beq lbl_8026836C
-/* 80268364 00263FC4 7C 73 FB A6 */ mtspr 0x3f3, r3
-/* 80268368 00263FC8 48 00 00 1C */ b lbl_80268384
-lbl_8026836C:
-/* 8026836C 00263FCC 3C 60 80 42 */ lis r3, lbl_804265A8@ha
-/* 80268370 00263FD0 38 63 65 A8 */ addi r3, r3, lbl_804265A8@l
-/* 80268374 00263FD4 4C C6 31 82 */ crclr 6
-/* 80268378 00263FD8 4B D9 F7 4D */ bl func_80007AC4
-/* 8026837C 00263FDC 67 FF 80 00 */ oris r31, r31, 0x8000
-/* 80268380 00263FE0 7F F3 FB A6 */ mtspr 0x3f3, r31
-lbl_80268384:
-/* 80268384 00263FE4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80268388 00263FE8 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8026838C 00263FEC 7C 08 03 A6 */ mtlr r0
-/* 80268390 00263FF0 38 21 00 10 */ addi r1, r1, 0x10
-/* 80268394 00263FF4 4E 80 00 20 */ blr
diff --git a/obj_files.mk b/obj_files.mk
index 7a0ee82..e164902 100644
--- a/obj_files.mk
+++ b/obj_files.mk
@@ -113,6 +113,7 @@ TEXT_O_FILES := \
$(BUILD_DIR)/asm/SDK/exi2.o \
$(BUILD_DIR)/asm/text_6_2.o \
$(BUILD_DIR)/asm/text_7.o \
+ $(BUILD_DIR)/asm/SDK/base/PPCArch.o \
$(BUILD_DIR)/asm/SDK/OS/OS.o \
$(BUILD_DIR)/asm/SDK/OS/OSAlarm.o \
$(BUILD_DIR)/src/SDK/OS/OSAlloc.o \