diff options
author | red031000 <rubenru09@aol.com> | 2020-09-18 16:18:51 +0100 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2020-09-18 16:18:51 +0100 |
commit | acf90f87c4660c63dd8b9b0dcf127e6155d1201d (patch) | |
tree | 1f5c093ef2fb37dce461bad54f0c328823b4c6fd /asm/libstdc++ | |
parent | dce9d7dd3363fb3c788e9eef5d71a35e0356a02b (diff) |
split global_destructor_chain and __init_cpp_exceptions
Diffstat (limited to 'asm/libstdc++')
-rw-r--r-- | asm/libstdc++/__init_cpp_exceptions.s | 45 | ||||
-rw-r--r-- | asm/libstdc++/global_destructor_chain.s | 35 |
2 files changed, 80 insertions, 0 deletions
diff --git a/asm/libstdc++/__init_cpp_exceptions.s b/asm/libstdc++/__init_cpp_exceptions.s new file mode 100644 index 0000000..aa1fa2a --- /dev/null +++ b/asm/libstdc++/__init_cpp_exceptions.s @@ -0,0 +1,45 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global __init_cpp_exceptions_tmp +__init_cpp_exceptions_tmp: #__init_cpp_exceptions +#causes "runtime sources 'global_destructor_chain.c' and '__init_cpp_exceptions.cpp' both need to be updated to latest +#version. Please contact Metrowerks support." error +#needs to be split correctly before renaming +/* 801C77C0 001C3420 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 801C77C4 001C3424 7C 08 02 A6 */ mflr r0 +/* 801C77C8 001C3428 90 01 00 14 */ stw r0, 0x14(r1) +/* 801C77CC 001C342C 80 0D 83 D8 */ lwz r0, lbl_8063D698-_SDA_BASE_(r13) +/* 801C77D0 001C3430 2C 00 FF FE */ cmpwi r0, -2 +/* 801C77D4 001C3434 40 82 00 18 */ bne lbl_801C77EC +/* 801C77D8 001C3438 3C 60 80 00 */ lis r3, lbl_80006948@ha +/* 801C77DC 001C343C 7C 44 13 78 */ mr r4, r2 +/* 801C77E0 001C3440 38 63 69 48 */ addi r3, r3, lbl_80006948@l +/* 801C77E4 001C3444 48 00 00 4D */ bl __register_fragment +/* 801C77E8 001C3448 90 6D 83 D8 */ stw r3, lbl_8063D698-_SDA_BASE_(r13) +lbl_801C77EC: +/* 801C77EC 001C344C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 801C77F0 001C3450 7C 08 03 A6 */ mtlr r0 +/* 801C77F4 001C3454 38 21 00 10 */ addi r1, r1, 0x10 +/* 801C77F8 001C3458 4E 80 00 20 */ blr + +.global __fini_cpp_exceptions_tmp +__fini_cpp_exceptions_tmp: #__fini_cpp_exceptions +#causes "runtime sources 'global_destructor_chain.c' and '__init_cpp_exceptions.cpp' both need to be updated to latest +#version. Please contact Metrowerks support." error +#needs to be split correctly before renaming +/* 801C77FC 001C345C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 801C7800 001C3460 7C 08 02 A6 */ mflr r0 +/* 801C7804 001C3464 90 01 00 14 */ stw r0, 0x14(r1) +/* 801C7808 001C3468 80 6D 83 D8 */ lwz r3, lbl_8063D698-_SDA_BASE_(r13) +/* 801C780C 001C346C 2C 03 FF FE */ cmpwi r3, -2 +/* 801C7810 001C3470 41 82 00 10 */ beq lbl_801C7820 +/* 801C7814 001C3474 48 00 00 51 */ bl func_801C7864 +/* 801C7818 001C3478 38 00 FF FE */ li r0, -2 +/* 801C781C 001C347C 90 0D 83 D8 */ stw r0, lbl_8063D698-_SDA_BASE_(r13) +lbl_801C7820: +/* 801C7820 001C3480 80 01 00 14 */ lwz r0, 0x14(r1) +/* 801C7824 001C3484 7C 08 03 A6 */ mtlr r0 +/* 801C7828 001C3488 38 21 00 10 */ addi r1, r1, 0x10 +/* 801C782C 001C348C 4E 80 00 20 */ blr diff --git a/asm/libstdc++/global_destructor_chain.s b/asm/libstdc++/global_destructor_chain.s new file mode 100644 index 0000000..1b2cfba --- /dev/null +++ b/asm/libstdc++/global_destructor_chain.s @@ -0,0 +1,35 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global __register_global_object_tmp +__register_global_object_tmp: +/* 801C6C48 001C28A8 80 0D 9F C0 */ lwz r0, lbl_8063F280-_SDA_BASE_(r13) +/* 801C6C4C 001C28AC 90 05 00 00 */ stw r0, 0(r5) +/* 801C6C50 001C28B0 90 85 00 04 */ stw r4, 4(r5) +/* 801C6C54 001C28B4 90 65 00 08 */ stw r3, 8(r5) +/* 801C6C58 001C28B8 90 AD 9F C0 */ stw r5, lbl_8063F280-_SDA_BASE_(r13) +/* 801C6C5C 001C28BC 4E 80 00 20 */ blr + +.global __destroy_global_chain_tmp +__destroy_global_chain_tmp: +/* 801C6C60 001C28C0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 801C6C64 001C28C4 7C 08 02 A6 */ mflr r0 +/* 801C6C68 001C28C8 90 01 00 14 */ stw r0, 0x14(r1) +/* 801C6C6C 001C28CC 48 00 00 20 */ b lbl_801C6C8C +lbl_801C6C70: +/* 801C6C70 001C28D0 80 03 00 00 */ lwz r0, 0(r3) +/* 801C6C74 001C28D4 38 80 FF FF */ li r4, -1 +/* 801C6C78 001C28D8 90 0D 9F C0 */ stw r0, lbl_8063F280-_SDA_BASE_(r13) +/* 801C6C7C 001C28DC 81 83 00 04 */ lwz r12, 4(r3) +/* 801C6C80 001C28E0 80 63 00 08 */ lwz r3, 8(r3) +/* 801C6C84 001C28E4 7D 89 03 A6 */ mtctr r12 +/* 801C6C88 001C28E8 4E 80 04 21 */ bctrl +lbl_801C6C8C: +/* 801C6C8C 001C28EC 80 6D 9F C0 */ lwz r3, lbl_8063F280-_SDA_BASE_(r13) +/* 801C6C90 001C28F0 2C 03 00 00 */ cmpwi r3, 0 +/* 801C6C94 001C28F4 40 82 FF DC */ bne lbl_801C6C70 +/* 801C6C98 001C28F8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 801C6C9C 001C28FC 7C 08 03 A6 */ mtlr r0 +/* 801C6CA0 001C2900 38 21 00 10 */ addi r1, r1, 0x10 +/* 801C6CA4 001C2904 4E 80 00 20 */ blr |