From 0128268fc3f16c09401a71bae31ceecd3782c707 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 18 Mar 2021 07:59:41 +1000 Subject: [PATCH] Move more lib rodata into late_rodata --- src/lib/lib_3a100.c | 83 ++++++++------ src/lib/ultra/libc/xprintf.c | 214 +++++++++++++++++------------------ src/lib/ultra/os/exceptasm.c | 42 ++++--- 3 files changed, 176 insertions(+), 163 deletions(-) diff --git a/src/lib/lib_3a100.c b/src/lib/lib_3a100.c index 096a57f4f..755c736db 100644 --- a/src/lib/lib_3a100.c +++ b/src/lib/lib_3a100.c @@ -8,41 +8,12 @@ #include "data.h" #include "types.h" -const u32 var70054a90[] = {0x3fb50481}; - -#if VERSION >= VERSION_PAL_FINAL -const u32 var70054a94[] = {0x7003a2c8}; -const u32 var70054a98[] = {0x7003a324}; -const u32 var70054a9c[] = {0x7003a380}; -const u32 var70054aa0[] = {0x7003a3ac}; -const u32 var70054aa4[] = {0x7003a3d8}; -const u32 var70054aa8[] = {0x7003a404}; -const u32 var70054aac[] = {0x7003a468}; -const u32 var70054ab0[] = {0x7003a484}; -#else -const u32 var70054a94[] = {0x7003a9c8}; -const u32 var70054a98[] = {0x7003aa24}; -const u32 var70054a9c[] = {0x7003aa80}; -const u32 var70054aa0[] = {0x7003aaac}; -const u32 var70054aa4[] = {0x7003aad8}; -const u32 var70054aa8[] = {0x7003ab04}; -const u32 var70054aac[] = {0x7003ab68}; -const u32 var70054ab0[] = {0x7003ab84}; -#endif - -const u32 var70054ab4[] = {0x482910da}; -const u32 var70054ab8[] = {0x482910da}; -const u32 var70054abc[] = {0x00000000}; -const u32 var70054ac0[] = {0x40490fdb}; -const u32 var70054ac4[] = {0x3fb504f4}; -const u32 var70054ac8[] = {0x3f879c7d}; -const u32 var70054acc[] = {0x3f71a1bf}; -const u32 var70054ad0[] = {0x46d12000}; -const u32 var70054ad4[] = {0x46d12000}; -const u32 var70054ad8[] = {0x482910da}; - GLOBAL_ASM( glabel func0003a100 +.late_rodata +glabel var70054a90 +.word 0x3fb50481 +.text /* 3a100: 27bdff80 */ addiu $sp,$sp,-128 /* 3a104: afbf001c */ sw $ra,0x1c($sp) /* 3a108: afa40080 */ sw $a0,0x80($sp) @@ -598,6 +569,30 @@ glabel func0003a100 GLOBAL_ASM( glabel func0003a940 +.late_rodata +glabel var70054a94 +.word func0003a940+0x88 +glabel var70054a98 +.word func0003a940+0xe4 +glabel var70054a9c +.word func0003a940+0x140 +glabel var70054aa0 +.word func0003a940+0x16c +glabel var70054aa4 +.word func0003a940+0x198 +glabel var70054aa8 +.word func0003a940+0x1c4 +glabel var70054aac +.word func0003a940+0x228 +glabel var70054ab0 +.word func0003a940+0x244 +glabel var70054ab4 +.word 0x482910da +glabel var70054ab8 +.word 0x482910da +glabel var70054abc +.word 0x00000000 +.text /* 3a940: 27bdffd0 */ addiu $sp,$sp,-48 /* 3a944: afbf0014 */ sw $ra,0x14($sp) /* 3a948: afa40030 */ sw $a0,0x30($sp) @@ -1534,6 +1529,12 @@ glabel func0003b64c GLOBAL_ASM( glabel func0003b710 +.late_rodata +glabel var70054ac0 +.word 0x40490fdb +glabel var70054ac4 +.word 0x3fb504f4 +.text /* 3b710: 27bdffd8 */ addiu $sp,$sp,-40 /* 3b714: afbf0014 */ sw $ra,0x14($sp) /* 3b718: afa60030 */ sw $a2,0x30($sp) @@ -1725,6 +1726,12 @@ glabel func0003b884 GLOBAL_ASM( glabel func0003b9d4 +.late_rodata +glabel var70054ac8 +.word 0x3f879c7d +glabel var70054acc +.word 0x3f71a1bf +.text /* 3b9d4: 27bdfff8 */ addiu $sp,$sp,-8 /* 3b9d8: 3c013f80 */ lui $at,0x3f80 /* 3b9dc: 44812000 */ mtc1 $at,$f4 @@ -1771,6 +1778,12 @@ glabel func0003b9d4 GLOBAL_ASM( glabel func0003ba64 +.late_rodata +glabel var70054ad0 +.word 0x46d12000 +glabel var70054ad4 +.word 0x46d12000 +.text /* 3ba64: 27bdffc0 */ addiu $sp,$sp,-64 /* 3ba68: afbf001c */ sw $ra,0x1c($sp) /* 3ba6c: afa40040 */ sw $a0,0x40($sp) @@ -1903,6 +1916,10 @@ glabel func0003ba64 GLOBAL_ASM( glabel func0003bc50 +.late_rodata +glabel var70054ad8 +.word 0x482910da +.text /* 3bc50: 27bdffc8 */ addiu $sp,$sp,-56 /* 3bc54: afbf001c */ sw $ra,0x1c($sp) /* 3bc58: afa40038 */ sw $a0,0x38($sp) diff --git a/src/lib/ultra/libc/xprintf.c b/src/lib/ultra/libc/xprintf.c index f7f9d57ea..a624b6c09 100644 --- a/src/lib/ultra/libc/xprintf.c +++ b/src/lib/ultra/libc/xprintf.c @@ -15,114 +15,6 @@ const u32 var70059ee8[] = {0x00000008}; const u32 var70059eec[] = {0x00000010}; const u32 var70059ef0[] = {0x00000000}; -#if VERSION >= VERSION_PAL_FINAL -const u32 var70059ef4[] = {0x7004e2f8}; -const u32 var70059ef8[] = {0x7004e5d8}; -const u32 var70059efc[] = {0x7004e2f8}; -const u32 var70059f00[] = {0x7004e5d8}; -const u32 var70059f04[] = {0x7004e5d8}; -const u32 var70059f08[] = {0x7004e5d8}; -const u32 var70059f0c[] = {0x7004e5d8}; -const u32 var70059f10[] = {0x7004e5d8}; -const u32 var70059f14[] = {0x7004e5d8}; -const u32 var70059f18[] = {0x7004e5d8}; -const u32 var70059f1c[] = {0x7004e5d8}; -const u32 var70059f20[] = {0x7004e5d8}; -const u32 var70059f24[] = {0x7004e5d8}; -const u32 var70059f28[] = {0x7004e5d8}; -const u32 var70059f2c[] = {0x7004e5d8}; -const u32 var70059f30[] = {0x7004e5d8}; -const u32 var70059f34[] = {0x7004e5d8}; -const u32 var70059f38[] = {0x7004e5d8}; -const u32 var70059f3c[] = {0x7004e5d8}; -const u32 var70059f40[] = {0x7004e1a8}; -const u32 var70059f44[] = {0x7004e5d8}; -const u32 var70059f48[] = {0x7004e5d8}; -const u32 var70059f4c[] = {0x7004e5d8}; -const u32 var70059f50[] = {0x7004e5d8}; -const u32 var70059f54[] = {0x7004e5d8}; -const u32 var70059f58[] = {0x7004e5d8}; -const u32 var70059f5c[] = {0x7004e5d8}; -const u32 var70059f60[] = {0x7004e5d8}; -const u32 var70059f64[] = {0x7004e5d8}; -const u32 var70059f68[] = {0x7004e5d8}; -const u32 var70059f6c[] = {0x7004e000}; -const u32 var70059f70[] = {0x7004e038}; -const u32 var70059f74[] = {0x7004e2f8}; -const u32 var70059f78[] = {0x7004e2f8}; -const u32 var70059f7c[] = {0x7004e2f8}; -const u32 var70059f80[] = {0x7004e5d8}; -const u32 var70059f84[] = {0x7004e038}; -const u32 var70059f88[] = {0x7004e5d8}; -const u32 var70059f8c[] = {0x7004e5d8}; -const u32 var70059f90[] = {0x7004e5d8}; -const u32 var70059f94[] = {0x7004e5d8}; -const u32 var70059f98[] = {0x7004e45c}; -const u32 var70059f9c[] = {0x7004e1a8}; -const u32 var70059fa0[] = {0x7004e52c}; -const u32 var70059fa4[] = {0x7004e5d8}; -const u32 var70059fa8[] = {0x7004e5d8}; -const u32 var70059fac[] = {0x7004e574}; -const u32 var70059fb0[] = {0x7004e5d8}; -const u32 var70059fb4[] = {0x7004e1a8}; -const u32 var70059fb8[] = {0x7004e5d8}; -const u32 var70059fbc[] = {0x7004e5d8}; -const u32 var70059fc0[] = {0x7004e1a8}; -#else -const u32 var70059ef4[] = {0x7004e9f8}; -const u32 var70059ef8[] = {0x7004ecd8}; -const u32 var70059efc[] = {0x7004e9f8}; -const u32 var70059f00[] = {0x7004ecd8}; -const u32 var70059f04[] = {0x7004ecd8}; -const u32 var70059f08[] = {0x7004ecd8}; -const u32 var70059f0c[] = {0x7004ecd8}; -const u32 var70059f10[] = {0x7004ecd8}; -const u32 var70059f14[] = {0x7004ecd8}; -const u32 var70059f18[] = {0x7004ecd8}; -const u32 var70059f1c[] = {0x7004ecd8}; -const u32 var70059f20[] = {0x7004ecd8}; -const u32 var70059f24[] = {0x7004ecd8}; -const u32 var70059f28[] = {0x7004ecd8}; -const u32 var70059f2c[] = {0x7004ecd8}; -const u32 var70059f30[] = {0x7004ecd8}; -const u32 var70059f34[] = {0x7004ecd8}; -const u32 var70059f38[] = {0x7004ecd8}; -const u32 var70059f3c[] = {0x7004ecd8}; -const u32 var70059f40[] = {0x7004e8a8}; -const u32 var70059f44[] = {0x7004ecd8}; -const u32 var70059f48[] = {0x7004ecd8}; -const u32 var70059f4c[] = {0x7004ecd8}; -const u32 var70059f50[] = {0x7004ecd8}; -const u32 var70059f54[] = {0x7004ecd8}; -const u32 var70059f58[] = {0x7004ecd8}; -const u32 var70059f5c[] = {0x7004ecd8}; -const u32 var70059f60[] = {0x7004ecd8}; -const u32 var70059f64[] = {0x7004ecd8}; -const u32 var70059f68[] = {0x7004ecd8}; -const u32 var70059f6c[] = {0x7004e700}; -const u32 var70059f70[] = {0x7004e738}; -const u32 var70059f74[] = {0x7004e9f8}; -const u32 var70059f78[] = {0x7004e9f8}; -const u32 var70059f7c[] = {0x7004e9f8}; -const u32 var70059f80[] = {0x7004ecd8}; -const u32 var70059f84[] = {0x7004e738}; -const u32 var70059f88[] = {0x7004ecd8}; -const u32 var70059f8c[] = {0x7004ecd8}; -const u32 var70059f90[] = {0x7004ecd8}; -const u32 var70059f94[] = {0x7004ecd8}; -const u32 var70059f98[] = {0x7004eb5c}; -const u32 var70059f9c[] = {0x7004e8a8}; -const u32 var70059fa0[] = {0x7004ec2c}; -const u32 var70059fa4[] = {0x7004ecd8}; -const u32 var70059fa8[] = {0x7004ecd8}; -const u32 var70059fac[] = {0x7004ec74}; -const u32 var70059fb0[] = {0x7004ecd8}; -const u32 var70059fb4[] = {0x7004e8a8}; -const u32 var70059fb8[] = {0x7004ecd8}; -const u32 var70059fbc[] = {0x7004ecd8}; -const u32 var70059fc0[] = {0x7004e8a8}; -#endif - #define ISDIGIT(x) ((x >= '0' && x <= '9')) #define ATOI(dst, src) \ @@ -156,6 +48,112 @@ const u32 var70059fc0[] = {0x7004e8a8}; GLOBAL_ASM( glabel _Putfld +.late_rodata +glabel var70059ef4 +.word _Putfld+0x368 +glabel var70059ef8 +.word _Putfld+0x648 +glabel var70059efc +.word _Putfld+0x368 +glabel var70059f00 +.word _Putfld+0x648 +glabel var70059f04 +.word _Putfld+0x648 +glabel var70059f08 +.word _Putfld+0x648 +glabel var70059f0c +.word _Putfld+0x648 +glabel var70059f10 +.word _Putfld+0x648 +glabel var70059f14 +.word _Putfld+0x648 +glabel var70059f18 +.word _Putfld+0x648 +glabel var70059f1c +.word _Putfld+0x648 +glabel var70059f20 +.word _Putfld+0x648 +glabel var70059f24 +.word _Putfld+0x648 +glabel var70059f28 +.word _Putfld+0x648 +glabel var70059f2c +.word _Putfld+0x648 +glabel var70059f30 +.word _Putfld+0x648 +glabel var70059f34 +.word _Putfld+0x648 +glabel var70059f38 +.word _Putfld+0x648 +glabel var70059f3c +.word _Putfld+0x648 +glabel var70059f40 +.word _Putfld+0x218 +glabel var70059f44 +.word _Putfld+0x648 +glabel var70059f48 +.word _Putfld+0x648 +glabel var70059f4c +.word _Putfld+0x648 +glabel var70059f50 +.word _Putfld+0x648 +glabel var70059f54 +.word _Putfld+0x648 +glabel var70059f58 +.word _Putfld+0x648 +glabel var70059f5c +.word _Putfld+0x648 +glabel var70059f60 +.word _Putfld+0x648 +glabel var70059f64 +.word _Putfld+0x648 +glabel var70059f68 +.word _Putfld+0x648 +glabel var70059f6c +.word _Putfld+0x070 +glabel var70059f70 +.word _Putfld+0x0a8 +glabel var70059f74 +.word _Putfld+0x368 +glabel var70059f78 +.word _Putfld+0x368 +glabel var70059f7c +.word _Putfld+0x368 +glabel var70059f80 +.word _Putfld+0x648 +glabel var70059f84 +.word _Putfld+0x0a8 +glabel var70059f88 +.word _Putfld+0x648 +glabel var70059f8c +.word _Putfld+0x648 +glabel var70059f90 +.word _Putfld+0x648 +glabel var70059f94 +.word _Putfld+0x648 +glabel var70059f98 +.word _Putfld+0x4cc +glabel var70059f9c +.word _Putfld+0x218 +glabel var70059fa0 +.word _Putfld+0x59c +glabel var70059fa4 +.word _Putfld+0x648 +glabel var70059fa8 +.word _Putfld+0x648 +glabel var70059fac +.word _Putfld+0x5e4 +glabel var70059fb0 +.word _Putfld+0x648 +glabel var70059fb4 +.word _Putfld+0x218 +glabel var70059fb8 +.word _Putfld+0x648 +glabel var70059fbc +.word _Putfld+0x648 +glabel var70059fc0 +.word _Putfld+0x218 +.text /* 4e690: 27bdffe8 */ addiu $sp,$sp,-24 /* 4e694: afa50020 */ sw $a1,0x20($sp) /* 4e698: afbf0014 */ sw $ra,0x14($sp) diff --git a/src/lib/ultra/os/exceptasm.c b/src/lib/ultra/os/exceptasm.c index 8947d21b0..b6b158a9d 100644 --- a/src/lib/ultra/os/exceptasm.c +++ b/src/lib/ultra/os/exceptasm.c @@ -164,28 +164,6 @@ const u32 var70052464[] = {0x0c0c0c0c}; const u32 var70052468[] = {0x10101010}; const u32 var7005246c[] = {0x10101010}; -#if VERSION >= VERSION_PAL_FINAL -const u32 var70052470[] = {0x70003a0c}; -const u32 var70052474[] = {0x70003998}; -const u32 var70052478[] = {0x70003978}; -const u32 var7005247c[] = {0x700037dc}; -const u32 var70052480[] = {0x70003798}; -const u32 var70052484[] = {0x7000391c}; -const u32 var70052488[] = {0x70003760}; -const u32 var7005248c[] = {0x7000376c}; -const u32 var70052490[] = {0x70003778}; -#else -const u32 var70052470[] = {0x70003a3c}; -const u32 var70052474[] = {0x700039c8}; -const u32 var70052478[] = {0x700039a8}; -const u32 var7005247c[] = {0x7000380c}; -const u32 var70052480[] = {0x700037c8}; -const u32 var70052484[] = {0x7000394c}; -const u32 var70052488[] = {0x70003790}; -const u32 var7005248c[] = {0x7000379c}; -const u32 var70052490[] = {0x700037a8}; -#endif - GLOBAL_ASM( glabel __osExceptionPreamble /* 34f0: 3c1a7000 */ lui $k0,%hi(__osException) @@ -196,6 +174,26 @@ glabel __osExceptionPreamble GLOBAL_ASM( glabel __osException +.late_rodata +glabel var70052470 +.word __osException+0x53c +glabel var70052474 +.word __osException+0x4c8 +glabel var70052478 +.word __osException+0x4a8 +glabel var7005247c +.word __osException+0x30c +glabel var70052480 +.word __osException+0x2c8 +glabel var70052484 +.word __osException+0x44c +glabel var70052488 +.word __osException+0x290 +glabel var7005248c +.word __osException+0x29c +glabel var70052490 +.word __osException+0x2a8 +.text /* 3500: 3c1a8009 */ lui $k0,%hi(var800907f0) /* 3504: 275a07f0 */ addiu $k0,$k0,%lo(var800907f0) /* 3508: ff410020 */ sd $at,0x20($k0)