mirror of
https://github.com/ThomasKing2014/android-firmware-qti-sdm660
synced 2025-11-20 07:19:09 +08:00
110 lines
4.2 KiB
Plaintext
Executable File
110 lines
4.2 KiB
Plaintext
Executable File
|
|
|
|
entry &th
|
|
thread &th
|
|
GOSUB LoadGlobalRegs
|
|
GOSUB LoadLocalRegs &th
|
|
register
|
|
v.f
|
|
|
|
enddo
|
|
|
|
LoadLocalRegs:
|
|
ENTRY &cpu_num
|
|
print "Loading CPU [&cpu_num] registers"
|
|
thread &cpu_num
|
|
r.s r0 v.value(QURT_error_info.locregs[&cpu_num].r0)
|
|
r.s r1 v.value(QURT_error_info.locregs[&cpu_num].r1)
|
|
r.s r2 v.value(QURT_error_info.locregs[&cpu_num].r2)
|
|
r.s r3 v.value(QURT_error_info.locregs[&cpu_num].r3)
|
|
r.s r4 v.value(QURT_error_info.locregs[&cpu_num].r4)
|
|
r.s r5 v.value(QURT_error_info.locregs[&cpu_num].r5)
|
|
r.s r6 v.value(QURT_error_info.locregs[&cpu_num].r6)
|
|
r.s r7 v.value(QURT_error_info.locregs[&cpu_num].r7)
|
|
r.s r8 v.value(QURT_error_info.locregs[&cpu_num].r8)
|
|
r.s r9 v.value(QURT_error_info.locregs[&cpu_num].r9)
|
|
r.s r10 v.value(QURT_error_info.locregs[&cpu_num].r10)
|
|
r.s r11 v.value(QURT_error_info.locregs[&cpu_num].r11)
|
|
r.s r12 v.value(QURT_error_info.locregs[&cpu_num].r12)
|
|
r.s r13 v.value(QURT_error_info.locregs[&cpu_num].r13)
|
|
r.s r14 v.value(QURT_error_info.locregs[&cpu_num].r14)
|
|
r.s r15 v.value(QURT_error_info.locregs[&cpu_num].r15)
|
|
r.s r16 v.value(QURT_error_info.locregs[&cpu_num].r16)
|
|
r.s r17 v.value(QURT_error_info.locregs[&cpu_num].r17)
|
|
r.s r18 v.value(QURT_error_info.locregs[&cpu_num].r18)
|
|
r.s r19 v.value(QURT_error_info.locregs[&cpu_num].r19)
|
|
r.s r20 v.value(QURT_error_info.locregs[&cpu_num].r20)
|
|
r.s r21 v.value(QURT_error_info.locregs[&cpu_num].r21)
|
|
r.s r22 v.value(QURT_error_info.locregs[&cpu_num].r22)
|
|
r.s r23 v.value(QURT_error_info.locregs[&cpu_num].r23)
|
|
r.s r24 v.value(QURT_error_info.locregs[&cpu_num].r24)
|
|
r.s r25 v.value(QURT_error_info.locregs[&cpu_num].r25)
|
|
r.s r26 v.value(QURT_error_info.locregs[&cpu_num].r26)
|
|
r.s r27 v.value(QURT_error_info.locregs[&cpu_num].r27)
|
|
r.s r28 v.value(QURT_error_info.locregs[&cpu_num].r28)
|
|
r.s r29 v.value(QURT_error_info.locregs[&cpu_num].r29)
|
|
r.s r30 v.value(QURT_error_info.locregs[&cpu_num].r30)
|
|
r.s r31 v.value(QURT_error_info.locregs[&cpu_num].r31)
|
|
r.s elr v.value(QURT_error_info.locregs[&cpu_num].elr)
|
|
r.s pc v.value(QURT_error_info.locregs[&cpu_num].elr)
|
|
r.s ssr v.value(QURT_error_info.locregs[&cpu_num].ssr)
|
|
r.s badva v.value(QURT_error_info.locregs[&cpu_num].badva)
|
|
r.s gp v.value(QURT_error_info.locregs[&cpu_num].gp)
|
|
r.s ugp v.value(QURT_error_info.locregs[&cpu_num].ugp)
|
|
r.s sa0 v.value(QURT_error_info.locregs[&cpu_num].sa0)
|
|
r.s lc0 v.value(QURT_error_info.locregs[&cpu_num].lc0)
|
|
r.s sa1 v.value(QURT_error_info.locregs[&cpu_num].sa1)
|
|
r.s lc1 v.value(QURT_error_info.locregs[&cpu_num].lc1)
|
|
r.s p v.value(QURT_error_info.locregs[&cpu_num].preds)
|
|
r.s m0 v.value(QURT_error_info.locregs[&cpu_num].m0)
|
|
r.s usr v.value(QURT_error_info.locregs[&cpu_num].usr)
|
|
r.s tid v.value(QURT_error_info.locregs[&cpu_num].tid)
|
|
;Load IMASK from Global registers
|
|
if (&cpu_num==0)
|
|
(
|
|
r.s imask v.value(QURT_error_info.globregs.imask0)
|
|
r.s sgp v.value((unsigned int)&QURTK_STACK0)
|
|
)
|
|
else if (&cpu_num==1)
|
|
(
|
|
r.s imask v.value(QURT_error_info.globregs.imask1)
|
|
r.s sgp v.value((unsigned int)&QURTK_STACK1)
|
|
)
|
|
else if (&cpu_num==2)
|
|
(
|
|
r.s imask v.value(QURT_error_info.globregs.imask2)
|
|
r.s sgp v.value((unsigned int)&QURTK_STACK2)
|
|
)
|
|
else if (&cpu_num==3)
|
|
(
|
|
r.s imask v.value(QURT_error_info.globregs.imask3)
|
|
r.s sgp v.value((unsigned int)&QURTK_STACK3)
|
|
)
|
|
else if (&cpu_num==4)
|
|
(
|
|
r.s imask v.value(QURT_error_info.globregs.imask4)
|
|
r.s sgp v.value((unsigned int)&QURTK_STACK4)
|
|
)
|
|
else if (&cpu_num==5)
|
|
(
|
|
r.s imask v.value(QURT_error_info.globregs.imask5)
|
|
r.s sgp v.value((unsigned int)&QURTK_STACK5)
|
|
)
|
|
RETURN
|
|
|
|
LoadGlobalRegs:
|
|
r.s syscfg v.value(QURT_error_info.globregs.syscfg)
|
|
r.s modectl v.value(QURT_error_info.globregs.modectl)
|
|
r.s pcyclelo v.value(QURT_error_info.globregs.pcyclelo)
|
|
r.s pcyclehi v.value(QURT_error_info.globregs.pcyclehi)
|
|
r.s evb v.value(QURT_error_info.globregs.evb)
|
|
r.s diag v.value(QURT_error_info.globregs.diag)
|
|
r.s iad v.value(QURT_error_info.globregs.iad)
|
|
r.s ipend v.value(QURT_error_info.globregs.ipend)
|
|
r.s iel v.value(QURT_error_info.globregs.iel)
|
|
r.s iahl v.value(QURT_error_info.globregs.iahl)
|
|
r.s rev v.value(QURT_error_info.globregs.rev)
|
|
RETURN
|
|
|
|
|