blob: a4c505b95390b944ad30dd8f9fe185c7e665e6ae [file] [log] [blame]
/*
* This handler restores state following a selfVerification memory access.
* On entry:
* a0 - offset from rSELF to the 1st element of the coreRegs save array.
* Note: the following registers are not restored
* zero, AT, gp, sp, fp, ra
*/
add a0, a0, rSELF # pointer to heapArgSpace.coreRegs[0]
#if 0
lw zero, r_ZERO*4(a0) # restore zero
#endif
.set noat
lw AT, r_AT*4(a0) # restore at
.set at
lw v0, r_V0*4(a0) # restore v0
lw v1, r_V1*4(a0) # restore v1
lw a1, r_A1*4(a0) # restore a1
lw a2, r_A2*4(a0) # restore a2
lw a3, r_A3*4(a0) # restore a3
lw t0, r_T0*4(a0) # restore t0
lw t1, r_T1*4(a0) # restore t1
lw t2, r_T2*4(a0) # restore t2
lw t3, r_T3*4(a0) # restore t3
lw t4, r_T4*4(a0) # restore t4
lw t5, r_T5*4(a0) # restore t5
lw t6, r_T6*4(a0) # restore t6
lw t7, r_T7*4(a0) # restore t7
lw s0, r_S0*4(a0) # restore s0
lw s1, r_S1*4(a0) # restore s1
lw s2, r_S2*4(a0) # restore s2
lw s3, r_S3*4(a0) # restore s3
lw s4, r_S4*4(a0) # restore s4
lw s5, r_S5*4(a0) # restore s5
lw s6, r_S6*4(a0) # restore s6
lw s7, r_S7*4(a0) # restore s7
lw t8, r_T8*4(a0) # restore t8
lw t9, r_T9*4(a0) # restore t9
lw k0, r_K0*4(a0) # restore k0
lw k1, r_K1*4(a0) # restore k1
#if 0
lw gp, r_GP*4(a0) # restore gp
lw sp, r_SP*4(a0) # restore sp
lw fp, r_FP*4(a0) # restore fp
lw ra, r_RA*4(a0) # restore ra
#endif
/* #ifdef HARD_FLOAT */
#if 0
lw f0, fr0*4(a0) # restore f0
lw f1, fr1*4(a0) # restore f1
lw f2, fr2*4(a0) # restore f2
lw f3, fr3*4(a0) # restore f3
lw f4, fr4*4(a0) # restore f4
lw f5, fr5*4(a0) # restore f5
lw f6, fr6*4(a0) # restore f6
lw f7, fr7*4(a0) # restore f7
lw f8, fr8*4(a0) # restore f8
lw f9, fr9*4(a0) # restore f9
lw f10, fr10*4(a0) # restore f10
lw f11, fr11*4(a0) # restore f11
lw f12, fr12*4(a0) # restore f12
lw f13, fr13*4(a0) # restore f13
lw f14, fr14*4(a0) # restore f14
lw f15, fr15*4(a0) # restore f15
lw f16, fr16*4(a0) # restore f16
lw f17, fr17*4(a0) # restore f17
lw f18, fr18*4(a0) # restore f18
lw f19, fr19*4(a0) # restore f19
lw f20, fr20*4(a0) # restore f20
lw f21, fr21*4(a0) # restore f21
lw f22, fr22*4(a0) # restore f22
lw f23, fr23*4(a0) # restore f23
lw f24, fr24*4(a0) # restore f24
lw f25, fr25*4(a0) # restore f25
lw f26, fr26*4(a0) # restore f26
lw f27, fr27*4(a0) # restore f27
lw f28, fr28*4(a0) # restore f28
lw f29, fr29*4(a0) # restore f29
lw f30, fr30*4(a0) # restore f30
lw f31, fr31*4(a0) # restore f31
#endif
lw a0, r_A1*4(a0) # restore a0
RETURN