summaryrefslogtreecommitdiff
path: root/asm/MSL_C/MSL_Common/wchar_io.s
blob: 8864676232afdc84d15b2b714bab18142c420bae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global fwide
fwide:
/* 801D0864 001CC4C4  2C 03 00 00 */	cmpwi r3, 0
/* 801D0868 001CC4C8  41 82 00 10 */	beq lbl_801D0878
/* 801D086C 001CC4CC  80 A3 00 04 */	lwz r5, 4(r3)
/* 801D0870 001CC4D0  54 A0 57 7F */	rlwinm. r0, r5, 0xa, 0x1d, 0x1f
/* 801D0874 001CC4D4  40 82 00 0C */	bne lbl_801D0880
lbl_801D0878:
/* 801D0878 001CC4D8  38 60 00 00 */	li r3, 0
/* 801D087C 001CC4DC  4E 80 00 20 */	blr
lbl_801D0880:
/* 801D0880 001CC4E0  54 A0 67 BE */	rlwinm r0, r5, 0xc, 0x1e, 0x1f
/* 801D0884 001CC4E4  2C 00 00 01 */	cmpwi r0, 1
/* 801D0888 001CC4E8  41 82 00 54 */	beq lbl_801D08DC
/* 801D088C 001CC4EC  40 80 00 10 */	bge lbl_801D089C
/* 801D0890 001CC4F0  2C 00 00 00 */	cmpwi r0, 0
/* 801D0894 001CC4F4  40 80 00 14 */	bge lbl_801D08A8
/* 801D0898 001CC4F8  48 00 00 48 */	b lbl_801D08E0
lbl_801D089C:
/* 801D089C 001CC4FC  2C 00 00 03 */	cmpwi r0, 3
/* 801D08A0 001CC500  40 80 00 40 */	bge lbl_801D08E0
/* 801D08A4 001CC504  48 00 00 30 */	b lbl_801D08D4
lbl_801D08A8:
/* 801D08A8 001CC508  2C 04 00 00 */	cmpwi r4, 0
/* 801D08AC 001CC50C  40 81 00 14 */	ble lbl_801D08C0
/* 801D08B0 001CC510  38 00 00 02 */	li r0, 2
/* 801D08B4 001CC514  50 05 A2 96 */	rlwimi r5, r0, 0x14, 0xa, 0xb
/* 801D08B8 001CC518  90 A3 00 04 */	stw r5, 4(r3)
/* 801D08BC 001CC51C  48 00 00 24 */	b lbl_801D08E0
lbl_801D08C0:
/* 801D08C0 001CC520  40 80 00 20 */	bge lbl_801D08E0
/* 801D08C4 001CC524  38 00 00 01 */	li r0, 1
/* 801D08C8 001CC528  50 05 A2 96 */	rlwimi r5, r0, 0x14, 0xa, 0xb
/* 801D08CC 001CC52C  90 A3 00 04 */	stw r5, 4(r3)
/* 801D08D0 001CC530  48 00 00 10 */	b lbl_801D08E0
lbl_801D08D4:
/* 801D08D4 001CC534  38 80 00 01 */	li r4, 1
/* 801D08D8 001CC538  48 00 00 08 */	b lbl_801D08E0
lbl_801D08DC:
/* 801D08DC 001CC53C  38 80 FF FF */	li r4, -1
lbl_801D08E0:
/* 801D08E0 001CC540  7C 83 23 78 */	mr r3, r4
/* 801D08E4 001CC544  4E 80 00 20 */	blr