summaryrefslogtreecommitdiff
path: root/asm/SDK/OS/OSSync.s
blob: d3db85576ef7d24935d136a12683c1d7a55efd84 (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
.include "macros.inc"

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

.global SystemCallVector
SystemCallVector:
/* 80270FE0 0026CC40  7D 30 FA A6 */	mfspr r9, 0x3f0
/* 80270FE4 0026CC44  61 2A 00 08 */	ori r10, r9, 8
/* 80270FE8 0026CC48  7D 50 FB A6 */	mtspr 0x3f0, r10
/* 80270FEC 0026CC4C  4C 00 01 2C */	isync
/* 80270FF0 0026CC50  7C 00 04 AC */	sync 0
/* 80270FF4 0026CC54  7D 30 FB A6 */	mtspr 0x3f0, r9
/* 80270FF8 0026CC58  4C 00 00 64 */	rfi

.global __OSSystemCallVectorEnd
__OSSystemCallVectorEnd:
/* 80270FFC 0026CC5C  60 00 00 00 */	nop

.global __OSInitSystemCall
__OSInitSystemCall:
/* 80271000 0026CC60  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80271004 0026CC64  7C 08 02 A6 */	mflr r0
/* 80271008 0026CC68  3C 80 80 27 */	lis r4, SystemCallVector@ha
/* 8027100C 0026CC6C  3C A0 80 27 */	lis r5, __OSSystemCallVectorEnd@ha
/* 80271010 0026CC70  90 01 00 14 */	stw r0, 0x14(r1)
/* 80271014 0026CC74  38 84 0F E0 */	addi r4, r4, SystemCallVector@l
/* 80271018 0026CC78  38 A5 0F FC */	addi r5, r5, __OSSystemCallVectorEnd@l
/* 8027101C 0026CC7C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80271020 0026CC80  3F E0 80 00 */	lis r31, 0x80000C00@ha
/* 80271024 0026CC84  38 7F 0C 00 */	addi r3, r31, 0x80000C00@l
/* 80271028 0026CC88  7C A4 28 50 */	subf r5, r4, r5
/* 8027102C 0026CC8C  4B D9 2F D5 */	bl memcpy
/* 80271030 0026CC90  38 7F 0C 00 */	addi r3, r31, 0xc00
/* 80271034 0026CC94  38 80 01 00 */	li r4, 0x100
/* 80271038 0026CC98  4B FF 96 7D */	bl DCFlushRangeNoSync
/* 8027103C 0026CC9C  7C 00 04 AC */	sync 0
/* 80271040 0026CCA0  38 7F 0C 00 */	addi r3, r31, 0xc00
/* 80271044 0026CCA4  38 80 01 00 */	li r4, 0x100
/* 80271048 0026CCA8  4B FF 96 F1 */	bl ICInvalidateRange
/* 8027104C 0026CCAC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80271050 0026CCB0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80271054 0026CCB4  7C 08 03 A6 */	mtlr r0
/* 80271058 0026CCB8  38 21 00 10 */	addi r1, r1, 0x10
/* 8027105C 0026CCBC  4E 80 00 20 */	blr