mirror of
https://github.com/encounter/ogws.git
synced 2026-03-30 11:33:37 -07:00
164 lines
6.7 KiB
ArmAsm
164 lines
6.7 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .text, "ax"
|
|
.global mbtowc
|
|
mbtowc:
|
|
/* 800B4C00 000AFB00 3C C0 80 3A */ lis r6, _current_locale@ha
|
|
/* 800B4C04 000AFB04 38 C6 8B F0 */ addi r6, r6, _current_locale@l
|
|
/* 800B4C08 000AFB08 80 C6 00 38 */ lwz r6, 0x38(r6)
|
|
/* 800B4C0C 000AFB0C 81 86 00 20 */ lwz r12, 0x20(r6)
|
|
/* 800B4C10 000AFB10 7D 89 03 A6 */ mtctr r12
|
|
/* 800B4C14 000AFB14 4E 80 04 20 */ bctr
|
|
|
|
.global __mbtowc_noconv
|
|
__mbtowc_noconv:
|
|
/* 800B4C18 000AFB18 2C 04 00 00 */ cmpwi r4, 0
|
|
/* 800B4C1C 000AFB1C 40 82 00 0C */ bne lbl_800B4C28
|
|
/* 800B4C20 000AFB20 38 60 00 00 */ li r3, 0
|
|
/* 800B4C24 000AFB24 4E 80 00 20 */ blr
|
|
lbl_800B4C28:
|
|
/* 800B4C28 000AFB28 2C 05 00 00 */ cmpwi r5, 0
|
|
/* 800B4C2C 000AFB2C 40 82 00 0C */ bne lbl_800B4C38
|
|
/* 800B4C30 000AFB30 38 60 FF FF */ li r3, -1
|
|
/* 800B4C34 000AFB34 4E 80 00 20 */ blr
|
|
lbl_800B4C38:
|
|
/* 800B4C38 000AFB38 2C 03 00 00 */ cmpwi r3, 0
|
|
/* 800B4C3C 000AFB3C 41 82 00 0C */ beq lbl_800B4C48
|
|
/* 800B4C40 000AFB40 88 04 00 00 */ lbz r0, 0(r4)
|
|
/* 800B4C44 000AFB44 B0 03 00 00 */ sth r0, 0(r3)
|
|
lbl_800B4C48:
|
|
/* 800B4C48 000AFB48 88 04 00 00 */ lbz r0, 0(r4)
|
|
/* 800B4C4C 000AFB4C 7C 00 07 75 */ extsb. r0, r0
|
|
/* 800B4C50 000AFB50 40 82 00 0C */ bne lbl_800B4C5C
|
|
/* 800B4C54 000AFB54 38 60 00 00 */ li r3, 0
|
|
/* 800B4C58 000AFB58 4E 80 00 20 */ blr
|
|
lbl_800B4C5C:
|
|
/* 800B4C5C 000AFB5C 38 60 00 01 */ li r3, 1
|
|
/* 800B4C60 000AFB60 4E 80 00 20 */ blr
|
|
|
|
.global __wctomb_noconv
|
|
__wctomb_noconv:
|
|
/* 800B4C64 000AFB64 2C 03 00 00 */ cmpwi r3, 0
|
|
/* 800B4C68 000AFB68 40 82 00 0C */ bne lbl_800B4C74
|
|
/* 800B4C6C 000AFB6C 38 60 00 00 */ li r3, 0
|
|
/* 800B4C70 000AFB70 4E 80 00 20 */ blr
|
|
lbl_800B4C74:
|
|
/* 800B4C74 000AFB74 98 83 00 00 */ stb r4, 0(r3)
|
|
/* 800B4C78 000AFB78 38 60 00 01 */ li r3, 1
|
|
/* 800B4C7C 000AFB7C 4E 80 00 20 */ blr
|
|
|
|
.global mbstowcs
|
|
mbstowcs:
|
|
/* 800B4C80 000AFB80 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 800B4C84 000AFB84 7C 08 02 A6 */ mflr r0
|
|
/* 800B4C88 000AFB88 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 800B4C8C 000AFB8C BF 41 00 08 */ stmw r26, 8(r1)
|
|
/* 800B4C90 000AFB90 7C 9B 23 78 */ mr r27, r4
|
|
/* 800B4C94 000AFB94 7C 7A 1B 78 */ mr r26, r3
|
|
/* 800B4C98 000AFB98 7C BC 2B 78 */ mr r28, r5
|
|
/* 800B4C9C 000AFB9C 7F 63 DB 78 */ mr r3, r27
|
|
/* 800B4CA0 000AFBA0 4B FF CA B1 */ bl strlen
|
|
/* 800B4CA4 000AFBA4 2C 1A 00 00 */ cmpwi r26, 0
|
|
/* 800B4CA8 000AFBA8 7C 7D 1B 78 */ mr r29, r3
|
|
/* 800B4CAC 000AFBAC 41 82 00 78 */ beq lbl_800B4D24
|
|
/* 800B4CB0 000AFBB0 3F E0 80 3A */ lis r31, _current_locale@ha
|
|
/* 800B4CB4 000AFBB4 3B C0 00 00 */ li r30, 0
|
|
/* 800B4CB8 000AFBB8 3B FF 8B F0 */ addi r31, r31, _current_locale@l
|
|
/* 800B4CBC 000AFBBC 48 00 00 5C */ b lbl_800B4D18
|
|
lbl_800B4CC0:
|
|
/* 800B4CC0 000AFBC0 88 1B 00 00 */ lbz r0, 0(r27)
|
|
/* 800B4CC4 000AFBC4 7C 00 07 75 */ extsb. r0, r0
|
|
/* 800B4CC8 000AFBC8 41 82 00 40 */ beq lbl_800B4D08
|
|
/* 800B4CCC 000AFBCC 80 DF 00 38 */ lwz r6, 0x38(r31)
|
|
/* 800B4CD0 000AFBD0 7F 43 D3 78 */ mr r3, r26
|
|
/* 800B4CD4 000AFBD4 7F 64 DB 78 */ mr r4, r27
|
|
/* 800B4CD8 000AFBD8 7F A5 EB 78 */ mr r5, r29
|
|
/* 800B4CDC 000AFBDC 81 86 00 20 */ lwz r12, 0x20(r6)
|
|
/* 800B4CE0 000AFBE0 7D 89 03 A6 */ mtctr r12
|
|
/* 800B4CE4 000AFBE4 3B 5A 00 02 */ addi r26, r26, 2
|
|
/* 800B4CE8 000AFBE8 4E 80 04 21 */ bctrl
|
|
/* 800B4CEC 000AFBEC 2C 03 00 00 */ cmpwi r3, 0
|
|
/* 800B4CF0 000AFBF0 40 81 00 10 */ ble lbl_800B4D00
|
|
/* 800B4CF4 000AFBF4 7F 7B 1A 14 */ add r27, r27, r3
|
|
/* 800B4CF8 000AFBF8 7F A3 E8 50 */ subf r29, r3, r29
|
|
/* 800B4CFC 000AFBFC 48 00 00 18 */ b lbl_800B4D14
|
|
lbl_800B4D00:
|
|
/* 800B4D00 000AFC00 38 60 FF FF */ li r3, -1
|
|
/* 800B4D04 000AFC04 48 00 00 28 */ b lbl_800B4D2C
|
|
lbl_800B4D08:
|
|
/* 800B4D08 000AFC08 38 00 00 00 */ li r0, 0
|
|
/* 800B4D0C 000AFC0C B0 1A 00 00 */ sth r0, 0(r26)
|
|
/* 800B4D10 000AFC10 48 00 00 18 */ b lbl_800B4D28
|
|
lbl_800B4D14:
|
|
/* 800B4D14 000AFC14 3B DE 00 01 */ addi r30, r30, 1
|
|
lbl_800B4D18:
|
|
/* 800B4D18 000AFC18 7C 1E E0 40 */ cmplw r30, r28
|
|
/* 800B4D1C 000AFC1C 41 80 FF A4 */ blt lbl_800B4CC0
|
|
/* 800B4D20 000AFC20 48 00 00 08 */ b lbl_800B4D28
|
|
lbl_800B4D24:
|
|
/* 800B4D24 000AFC24 3B C0 00 00 */ li r30, 0
|
|
lbl_800B4D28:
|
|
/* 800B4D28 000AFC28 7F C3 F3 78 */ mr r3, r30
|
|
lbl_800B4D2C:
|
|
/* 800B4D2C 000AFC2C BB 41 00 08 */ lmw r26, 8(r1)
|
|
/* 800B4D30 000AFC30 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 800B4D34 000AFC34 7C 08 03 A6 */ mtlr r0
|
|
/* 800B4D38 000AFC38 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 800B4D3C 000AFC3C 4E 80 00 20 */ blr
|
|
|
|
.global wcstombs
|
|
wcstombs:
|
|
/* 800B4D40 000AFC40 94 21 FF D0 */ stwu r1, -0x30(r1)
|
|
/* 800B4D44 000AFC44 7C 08 02 A6 */ mflr r0
|
|
/* 800B4D48 000AFC48 2C 03 00 00 */ cmpwi r3, 0
|
|
/* 800B4D4C 000AFC4C 90 01 00 34 */ stw r0, 0x34(r1)
|
|
/* 800B4D50 000AFC50 BF 41 00 18 */ stmw r26, 0x18(r1)
|
|
/* 800B4D54 000AFC54 7C 7A 1B 78 */ mr r26, r3
|
|
/* 800B4D58 000AFC58 7C BB 2B 78 */ mr r27, r5
|
|
/* 800B4D5C 000AFC5C 3B A0 00 00 */ li r29, 0
|
|
/* 800B4D60 000AFC60 41 82 00 0C */ beq lbl_800B4D6C
|
|
/* 800B4D64 000AFC64 2C 04 00 00 */ cmpwi r4, 0
|
|
/* 800B4D68 000AFC68 40 82 00 0C */ bne lbl_800B4D74
|
|
lbl_800B4D6C:
|
|
/* 800B4D6C 000AFC6C 38 60 00 00 */ li r3, 0
|
|
/* 800B4D70 000AFC70 48 00 00 74 */ b lbl_800B4DE4
|
|
lbl_800B4D74:
|
|
/* 800B4D74 000AFC74 3F E0 80 3A */ lis r31, _current_locale@ha
|
|
/* 800B4D78 000AFC78 7C 9C 23 78 */ mr r28, r4
|
|
/* 800B4D7C 000AFC7C 3B FF 8B F0 */ addi r31, r31, _current_locale@l
|
|
/* 800B4D80 000AFC80 48 00 00 58 */ b lbl_800B4DD8
|
|
lbl_800B4D84:
|
|
/* 800B4D84 000AFC84 A0 9C 00 00 */ lhz r4, 0(r28)
|
|
/* 800B4D88 000AFC88 2C 04 00 00 */ cmpwi r4, 0
|
|
/* 800B4D8C 000AFC8C 40 82 00 10 */ bne lbl_800B4D9C
|
|
/* 800B4D90 000AFC90 38 00 00 00 */ li r0, 0
|
|
/* 800B4D94 000AFC94 7C 1A E9 AE */ stbx r0, r26, r29
|
|
/* 800B4D98 000AFC98 48 00 00 48 */ b lbl_800B4DE0
|
|
lbl_800B4D9C:
|
|
/* 800B4D9C 000AFC9C 80 BF 00 38 */ lwz r5, 0x38(r31)
|
|
/* 800B4DA0 000AFCA0 38 61 00 08 */ addi r3, r1, 8
|
|
/* 800B4DA4 000AFCA4 81 85 00 24 */ lwz r12, 0x24(r5)
|
|
/* 800B4DA8 000AFCA8 7D 89 03 A6 */ mtctr r12
|
|
/* 800B4DAC 000AFCAC 3B 9C 00 02 */ addi r28, r28, 2
|
|
/* 800B4DB0 000AFCB0 4E 80 04 21 */ bctrl
|
|
/* 800B4DB4 000AFCB4 7C 1D 1A 14 */ add r0, r29, r3
|
|
/* 800B4DB8 000AFCB8 7C 7E 1B 78 */ mr r30, r3
|
|
/* 800B4DBC 000AFCBC 7C 00 D8 40 */ cmplw r0, r27
|
|
/* 800B4DC0 000AFCC0 41 81 00 20 */ bgt lbl_800B4DE0
|
|
/* 800B4DC4 000AFCC4 7F C5 F3 78 */ mr r5, r30
|
|
/* 800B4DC8 000AFCC8 7C 7A EA 14 */ add r3, r26, r29
|
|
/* 800B4DCC 000AFCCC 38 81 00 08 */ addi r4, r1, 8
|
|
/* 800B4DD0 000AFCD0 48 00 3F 25 */ bl strncpy
|
|
/* 800B4DD4 000AFCD4 7F BD F2 14 */ add r29, r29, r30
|
|
lbl_800B4DD8:
|
|
/* 800B4DD8 000AFCD8 7C 1D D8 40 */ cmplw r29, r27
|
|
/* 800B4DDC 000AFCDC 40 81 FF A8 */ ble lbl_800B4D84
|
|
lbl_800B4DE0:
|
|
/* 800B4DE0 000AFCE0 7F A3 EB 78 */ mr r3, r29
|
|
lbl_800B4DE4:
|
|
/* 800B4DE4 000AFCE4 BB 41 00 18 */ lmw r26, 0x18(r1)
|
|
/* 800B4DE8 000AFCE8 80 01 00 34 */ lwz r0, 0x34(r1)
|
|
/* 800B4DEC 000AFCEC 7C 08 03 A6 */ mtlr r0
|
|
/* 800B4DF0 000AFCF0 38 21 00 30 */ addi r1, r1, 0x30
|
|
/* 800B4DF4 000AFCF4 4E 80 00 20 */ blr
|