2019-08-15 10:45:18 +02:00
|
|
|
|
|
|
|
.global SCKernelCopyData
|
|
|
|
SCKernelCopyData:
|
|
|
|
// Disable data address translation
|
|
|
|
mfmsr %r6
|
|
|
|
li %r7, 0x10
|
|
|
|
andc %r6, %r6, %r7
|
|
|
|
mtmsr %r6
|
2020-04-29 18:02:36 +02:00
|
|
|
|
2019-08-15 10:45:18 +02:00
|
|
|
// Copy data
|
|
|
|
addi %r3, %r3, -1
|
|
|
|
addi %r4, %r4, -1
|
|
|
|
mtctr %r5
|
|
|
|
SCKernelCopyData_loop:
|
|
|
|
lbzu %r5, 1(%r4)
|
|
|
|
stbu %r5, 1(%r3)
|
|
|
|
bdnz SCKernelCopyData_loop
|
2020-04-29 18:02:36 +02:00
|
|
|
|
2019-08-15 10:45:18 +02:00
|
|
|
// Enable data address translation
|
|
|
|
ori %r6, %r6, 0x10
|
|
|
|
mtmsr %r6
|
|
|
|
blr
|
|
|
|
|
|
|
|
.global KernelCopyData
|
|
|
|
KernelCopyData:
|
|
|
|
li %r0, 0x2500
|
|
|
|
sc
|
|
|
|
blr
|
|
|
|
|
|
|
|
.globl SC0x36_KernelReadSRs
|
|
|
|
SC0x36_KernelReadSRs:
|
2020-04-29 18:02:36 +02:00
|
|
|
li %r0, 0x3600
|
2019-08-15 10:45:18 +02:00
|
|
|
sc
|
|
|
|
blr
|
|
|
|
|
|
|
|
.globl SC0x0A_KernelWriteSRs
|
|
|
|
SC0x0A_KernelWriteSRs:
|
2020-04-29 18:02:36 +02:00
|
|
|
li %r0, 0x0A00
|
2019-08-15 10:45:18 +02:00
|
|
|
sc
|
2020-04-29 18:02:36 +02:00
|
|
|
blr
|