diff options
author | red031000 <rubenru09@aol.com> | 2020-09-19 15:10:27 +0100 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2020-09-19 15:10:27 +0100 |
commit | feaf56f2b7d8cadcf218dfba2b6661863287b1d1 (patch) | |
tree | 95064c2bd19f850114102bfd0ba6fe0e8e0643d1 | |
parent | c4b1aa3f30028918ac4e324c462304edb821c5bf (diff) |
decompile ptmf.o
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | asm/libstdc++/ptmf.s | 17 | ||||
-rw-r--r-- | include/libstdc++/CPlusLib.h | 14 | ||||
-rw-r--r-- | obj_files.mk | 2 | ||||
-rw-r--r-- | src/libstdc++/ptmf.c | 17 |
5 files changed, 35 insertions, 21 deletions
@@ -28,7 +28,7 @@ TARGET := pbr_pal BUILD_DIR := build/$(TARGET) -SRC_DIRS := src src/SDK/OS +SRC_DIRS := src src/SDK/OS src/libstdc++ ASM_DIRS := asm asm/SDK/OS asm/libstdc++ asm/MetroTRK # Inputs @@ -67,11 +67,11 @@ PYTHON := python3 #POSTPROC := tools/postprocess.py # Options -INCLUDES := -i . -I- -i include -i include/SDK +INCLUDES := -i . -I- -i include -i include/SDK -i include/libstdc++ ASFLAGS := -mgekko -I include LDFLAGS := -map $(MAP) -fp hard -nodefaults -CFLAGS := -Cpp_exceptions off -proc gekko -fp hard -O4,p -nodefaults -msgstyle gcc -ipa file $(INCLUDES) +CFLAGS := -Cpp_exceptions off -proc gekko -fp hard -O4,p -nodefaults -msgstyle gcc -ipa file $(INCLUDES) -W all # for postprocess.py PROCFLAGS := -fprologue-fixup=old_stack diff --git a/asm/libstdc++/ptmf.s b/asm/libstdc++/ptmf.s deleted file mode 100644 index 380f7bd..0000000 --- a/asm/libstdc++/ptmf.s +++ /dev/null @@ -1,17 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 0x80006980 - 0x803E1E60 - -.global __ptmf_scall -__ptmf_scall: -/* 801C6FD8 001C2C38 80 0C 00 00 */ lwz r0, 0(r12) -/* 801C6FDC 001C2C3C 81 6C 00 04 */ lwz r11, 4(r12) -/* 801C6FE0 001C2C40 81 8C 00 08 */ lwz r12, 8(r12) -/* 801C6FE4 001C2C44 7C 63 02 14 */ add r3, r3, r0 -/* 801C6FE8 001C2C48 2C 0B 00 00 */ cmpwi r11, 0 -/* 801C6FEC 001C2C4C 41 80 00 0C */ blt lbl_801C6FF8 -/* 801C6FF0 001C2C50 7D 83 60 2E */ lwzx r12, r3, r12 -/* 801C6FF4 001C2C54 7D 8C 58 2E */ lwzx r12, r12, r11 -lbl_801C6FF8: -/* 801C6FF8 001C2C58 7D 89 03 A6 */ mtctr r12 -/* 801C6FFC 001C2C5C 4E 80 04 20 */ bctr diff --git a/include/libstdc++/CPlusLib.h b/include/libstdc++/CPlusLib.h new file mode 100644 index 0000000..819c0a9 --- /dev/null +++ b/include/libstdc++/CPlusLib.h @@ -0,0 +1,14 @@ +#ifndef POKEREVO_CPLUSLIB_H +#define POKEREVO_CPLUSLIB_H + +#ifdef __cplusplus +extern "C" { +#endif + +void __ptmf_scall(...); + +#ifdef __cplusplus +} +#endif + +#endif //POKEREVO_CPLUSLIB_H diff --git a/obj_files.mk b/obj_files.mk index 899bab2..ba75258 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -16,7 +16,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/libstdc++/__va_arg.o \ $(BUILD_DIR)/asm/libstdc++/global_destructor_chain.o \ $(BUILD_DIR)/asm/libstdc++/NMWException.o \ - $(BUILD_DIR)/asm/libstdc++/ptmf.o \ + $(BUILD_DIR)/src/libstdc++/ptmf.o \ $(BUILD_DIR)/asm/text_5_2.o \ $(BUILD_DIR)/asm/libstdc++/__init_cpp_exceptions.o \ $(BUILD_DIR)/asm/text_5_3.o \ diff --git a/src/libstdc++/ptmf.c b/src/libstdc++/ptmf.c new file mode 100644 index 0000000..34d3d3e --- /dev/null +++ b/src/libstdc++/ptmf.c @@ -0,0 +1,17 @@ +#include "CPlusLib.h" + +asm void __ptmf_scall(...) +{ + nofralloc + lwz r0, 0(r12) + lwz r11, 4(r12) + lwz r12, 8(r12) + add r3, r3, r0 + cmpwi r11, 0 + blt lbl_801C6FF8 + lwzx r12, r3, r12 + lwzx r12, r12, r11 +lbl_801C6FF8: + mtctr r12 + bctr +} |