summaryrefslogtreecommitdiff
path: root/asm/Runtime/__ppc_eabi_init.s
blob: 1b7ffb2ccb68509a146a5a5ee1148f7b49794db7 (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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
.include "macros.inc"

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

.global __init_user
__init_user:
/* 802744A4 00270104  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802744A8 00270108  7C 08 02 A6 */	mflr r0
/* 802744AC 0027010C  90 01 00 14 */	stw r0, 0x14(r1)
/* 802744B0 00270110  48 00 00 15 */	bl __init_cpp
/* 802744B4 00270114  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802744B8 00270118  7C 08 03 A6 */	mtlr r0
/* 802744BC 0027011C  38 21 00 10 */	addi r1, r1, 0x10
/* 802744C0 00270120  4E 80 00 20 */	blr

.global __init_cpp
__init_cpp:
/* 802744C4 00270124  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802744C8 00270128  7C 08 02 A6 */	mflr r0
/* 802744CC 0027012C  90 01 00 14 */	stw r0, 0x14(r1)
/* 802744D0 00270130  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802744D4 00270134  3F E0 80 3E */	lis r31, lbl_803E1E60@ha
/* 802744D8 00270138  3B FF 1E 60 */	addi r31, r31, lbl_803E1E60@l
/* 802744DC 0027013C  48 00 00 10 */	b lbl_802744EC
lbl_802744E0:
/* 802744E0 00270140  7D 89 03 A6 */	mtctr r12
/* 802744E4 00270144  4E 80 04 21 */	bctrl
/* 802744E8 00270148  3B FF 00 04 */	addi r31, r31, 4
lbl_802744EC:
/* 802744EC 0027014C  81 9F 00 00 */	lwz r12, 0(r31)
/* 802744F0 00270150  2C 0C 00 00 */	cmpwi r12, 0
/* 802744F4 00270154  40 82 FF EC */	bne lbl_802744E0
/* 802744F8 00270158  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802744FC 0027015C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80274500 00270160  7C 08 03 A6 */	mtlr r0
/* 80274504 00270164  38 21 00 10 */	addi r1, r1, 0x10
/* 80274508 00270168  4E 80 00 20 */	blr

.global exit
exit:
/* 8027450C 0027016C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80274510 00270170  7C 08 02 A6 */	mflr r0
/* 80274514 00270174  90 01 00 14 */	stw r0, 0x14(r1)
/* 80274518 00270178  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8027451C 0027017C  3F E0 80 3E */	lis r31, lbl_803E22A0@ha
/* 80274520 00270180  3B FF 22 A0 */	addi r31, r31, lbl_803E22A0@l
/* 80274524 00270184  48 00 00 10 */	b lbl_80274534
lbl_80274528:
/* 80274528 00270188  7D 89 03 A6 */	mtctr r12
/* 8027452C 0027018C  4E 80 04 21 */	bctrl
/* 80274530 00270190  3B FF 00 04 */	addi r31, r31, 4
lbl_80274534:
/* 80274534 00270194  81 9F 00 00 */	lwz r12, 0(r31)
/* 80274538 00270198  2C 0C 00 00 */	cmpwi r12, 0
/* 8027453C 0027019C  40 82 FF EC */	bne lbl_80274528
/* 80274540 002701A0  4B FF 3D 29 */	bl PPCHalt
/* 80274544 002701A4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80274548 002701A8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8027454C 002701AC  7C 08 03 A6 */	mtlr r0
/* 80274550 002701B0  38 21 00 10 */	addi r1, r1, 0x10
/* 80274554 002701B4  4E 80 00 20 */	blr