summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2020-04-02 01:30:18 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2020-04-02 12:15:03 +0800
commitcd60736e366edd0e76524a699bfb22bbb382dd44 (patch)
tree39c4fadda5f041335385695ba867446b62e3689c /src
parent69f6d2afad3f62d4e281aa2bffb492cfc7231760 (diff)
PrintMonWeight
Diffstat (limited to 'src')
-rw-r--r--src/pokedex.c227
1 files changed, 6 insertions, 221 deletions
diff --git a/src/pokedex.c b/src/pokedex.c
index 908ccfe6a..49dfaed00 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -4163,11 +4163,12 @@ static void PrintMonHeight(u16 height, u8 left, u8 top)
PrintInfoScreenText(buffer, left, top);
}
-#ifdef NONMATCHING
-// This doesn't match because gcc manages to avoid using the stack
-// to store local variables.
static void PrintMonWeight(u16 weight, u8 left, u8 top)
{
+#ifndef NONMATCHING
+ asm("":::"r9");
+{
+#endif
u8 buffer[16];
bool8 output;
u8 i = 0;
@@ -4223,226 +4224,10 @@ static void PrintMonWeight(u16 weight, u8 left, u8 top)
buffer[i++] = CHAR_PERIOD;
buffer[i++] = EOS;
PrintInfoScreenText(buffer, left, top);
-}
-#else
-__attribute__((naked))
-static void PrintMonWeight(u16 weight, u8 left, u8 top)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x14\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- mov r10, r1\n\
- lsls r2, 24\n\
- lsrs r2, 24\n\
- str r2, [sp, 0x10]\n\
- ldr r5, =0x000186a0\n\
- muls r0, r5\n\
- ldr r1, =0x000011b8\n\
- bl __divsi3\n\
- adds r7, r0, 0\n\
- movs r1, 0xA\n\
- bl __umodsi3\n\
- cmp r0, 0x4\n\
- bls _080C0494\n\
- adds r7, 0xA\n\
-_080C0494:\n\
- movs r0, 0\n\
- mov r8, r0\n\
- mov r4, sp\n\
- adds r0, r7, 0\n\
- adds r1, r5, 0\n\
- bl __udivsi3\n\
- adds r0, 0xA1\n\
- strb r0, [r4]\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0xA1\n\
- bne _080C04C0\n\
- movs r6, 0x1\n\
- mov r1, sp\n\
- movs r0, 0x77\n\
- strb r0, [r1]\n\
- b _080C04C6\n\
- .pool\n\
-_080C04C0:\n\
- movs r1, 0x1\n\
- mov r8, r1\n\
- movs r6, 0x1\n\
-_080C04C6:\n\
- ldr r1, =0x000186a0\n\
- adds r0, r7, 0\n\
- bl __umodsi3\n\
- adds r7, r0, 0\n\
- mov r4, sp\n\
- adds r4, 0x1\n\
- ldr r1, =0x00002710\n\
- bl __udivsi3\n\
- adds r0, 0xA1\n\
- strb r0, [r4]\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0xA1\n\
- bne _080C0504\n\
- mov r2, r8\n\
- cmp r2, 0\n\
- bne _080C0504\n\
- adds r1, r6, 0\n\
- adds r0, r1, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- add r1, sp\n\
- movs r0, 0x77\n\
- strb r0, [r1]\n\
- b _080C050E\n\
- .pool\n\
-_080C0504:\n\
- movs r3, 0x1\n\
- mov r8, r3\n\
- adds r0, r6, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
-_080C050E:\n\
- ldr r1, =0x00002710\n\
- adds r0, r7, 0\n\
- bl __umodsi3\n\
- adds r7, r0, 0\n\
- mov r0, sp\n\
- adds r4, r0, r6\n\
- movs r1, 0xFA\n\
- lsls r1, 2\n\
- adds r0, r7, 0\n\
- bl __udivsi3\n\
- adds r0, 0xA1\n\
- strb r0, [r4]\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0xA1\n\
- bne _080C054C\n\
- mov r1, r8\n\
- cmp r1, 0\n\
- bne _080C054C\n\
- adds r1, r6, 0\n\
- adds r0, r1, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- add r1, sp\n\
- movs r0, 0x77\n\
- strb r0, [r1]\n\
- b _080C0552\n\
- .pool\n\
-_080C054C:\n\
- adds r0, r6, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
-_080C0552:\n\
- movs r1, 0xFA\n\
- lsls r1, 2\n\
- adds r0, r7, 0\n\
- bl __umodsi3\n\
- adds r7, r0, 0\n\
- adds r1, r6, 0\n\
- adds r0, r1, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- adds r5, r6, 0\n\
- mov r2, sp\n\
- adds r4, r2, r1\n\
- adds r0, r7, 0\n\
- movs r1, 0x64\n\
- bl __udivsi3\n\
- adds r0, 0xA1\n\
- movs r3, 0\n\
- mov r9, r3\n\
- strb r0, [r4]\n\
- adds r0, r7, 0\n\
- movs r1, 0x64\n\
- bl __umodsi3\n\
- adds r7, r0, 0\n\
- adds r0, r5, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- adds r1, r6, 0\n\
- mov r2, sp\n\
- adds r0, r2, r5\n\
- movs r3, 0xAD\n\
- mov r8, r3\n\
- mov r2, r8\n\
- strb r2, [r0]\n\
- adds r0, r1, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- adds r5, r6, 0\n\
- mov r3, sp\n\
- adds r4, r3, r1\n\
- adds r0, r7, 0\n\
- movs r1, 0xA\n\
- bl __udivsi3\n\
- adds r0, 0xA1\n\
- strb r0, [r4]\n\
- adds r0, r5, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- adds r1, r6, 0\n\
- mov r2, sp\n\
- adds r0, r2, r5\n\
- mov r3, r9\n\
- strb r3, [r0]\n\
- adds r0, r1, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- adds r2, r6, 0\n\
- add r1, sp\n\
- movs r0, 0xE0\n\
- strb r0, [r1]\n\
- adds r0, r2, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- adds r3, r6, 0\n\
- mov r0, sp\n\
- adds r1, r0, r2\n\
- movs r0, 0xD6\n\
- strb r0, [r1]\n\
- adds r0, r3, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- adds r2, r6, 0\n\
- mov r0, sp\n\
- adds r1, r0, r3\n\
- movs r0, 0xE7\n\
- strb r0, [r1]\n\
- adds r0, r2, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r3, sp\n\
- adds r1, r3, r2\n\
- mov r2, r8\n\
- strb r2, [r1]\n\
- adds r1, r3, r0\n\
- movs r0, 0xFF\n\
- strb r0, [r1]\n\
- mov r0, sp\n\
- mov r1, r10\n\
- ldr r2, [sp, 0x10]\n\
- bl PrintInfoScreenText\n\
- add sp, 0x14\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided\n");
+#ifndef NONMATCHING
}
#endif
+}
const u8 *GetPokedexCategoryName(u16 dexNum) // unused
{