• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1    /*
2     * This handler restores state following a selfVerification memory access.
3     * On entry:
4     *    a0 - offset from rSELF to the 1st element of the coreRegs save array.
5     * Note: the following registers are not restored
6     *       zero, AT, gp, sp, fp, ra
7     */
8
9    add     a0, a0, rSELF               # pointer to heapArgSpace.coreRegs[0]
10#if 0
11    lw      zero, r_ZERO*4(a0)          # restore zero
12#endif
13    .set noat
14    lw      AT, r_AT*4(a0)              # restore at
15    .set at
16    lw      v0, r_V0*4(a0)              # restore v0
17    lw      v1, r_V1*4(a0)              # restore v1
18
19    lw      a1, r_A1*4(a0)              # restore a1
20    lw      a2, r_A2*4(a0)              # restore a2
21    lw      a3, r_A3*4(a0)              # restore a3
22
23    lw      t0, r_T0*4(a0)              # restore t0
24    lw      t1, r_T1*4(a0)              # restore t1
25    lw      t2, r_T2*4(a0)              # restore t2
26    lw      t3, r_T3*4(a0)              # restore t3
27    lw      t4, r_T4*4(a0)              # restore t4
28    lw      t5, r_T5*4(a0)              # restore t5
29    lw      t6, r_T6*4(a0)              # restore t6
30    lw      t7, r_T7*4(a0)              # restore t7
31
32    lw      s0, r_S0*4(a0)              # restore s0
33    lw      s1, r_S1*4(a0)              # restore s1
34    lw      s2, r_S2*4(a0)              # restore s2
35    lw      s3, r_S3*4(a0)              # restore s3
36    lw      s4, r_S4*4(a0)              # restore s4
37    lw      s5, r_S5*4(a0)              # restore s5
38    lw      s6, r_S6*4(a0)              # restore s6
39    lw      s7, r_S7*4(a0)              # restore s7
40
41    lw      t8, r_T8*4(a0)              # restore t8
42    lw      t9, r_T9*4(a0)              # restore t9
43
44    lw      k0, r_K0*4(a0)              # restore k0
45    lw      k1, r_K1*4(a0)              # restore k1
46
47#if 0
48    lw      gp, r_GP*4(a0)              # restore gp
49    lw      sp, r_SP*4(a0)              # restore sp
50    lw      fp, r_FP*4(a0)              # restore fp
51    lw      ra, r_RA*4(a0)              # restore ra
52#endif
53
54/* #ifdef HARD_FLOAT */
55#if 0
56    lw      f0, fr0*4(a0)               # restore f0
57    lw      f1, fr1*4(a0)               # restore f1
58    lw      f2, fr2*4(a0)               # restore f2
59    lw      f3, fr3*4(a0)               # restore f3
60    lw      f4, fr4*4(a0)               # restore f4
61    lw      f5, fr5*4(a0)               # restore f5
62    lw      f6, fr6*4(a0)               # restore f6
63    lw      f7, fr7*4(a0)               # restore f7
64    lw      f8, fr8*4(a0)               # restore f8
65    lw      f9, fr9*4(a0)               # restore f9
66    lw      f10, fr10*4(a0)             # restore f10
67    lw      f11, fr11*4(a0)             # restore f11
68    lw      f12, fr12*4(a0)             # restore f12
69    lw      f13, fr13*4(a0)             # restore f13
70    lw      f14, fr14*4(a0)             # restore f14
71    lw      f15, fr15*4(a0)             # restore f15
72    lw      f16, fr16*4(a0)             # restore f16
73    lw      f17, fr17*4(a0)             # restore f17
74    lw      f18, fr18*4(a0)             # restore f18
75    lw      f19, fr19*4(a0)             # restore f19
76    lw      f20, fr20*4(a0)             # restore f20
77    lw      f21, fr21*4(a0)             # restore f21
78    lw      f22, fr22*4(a0)             # restore f22
79    lw      f23, fr23*4(a0)             # restore f23
80    lw      f24, fr24*4(a0)             # restore f24
81    lw      f25, fr25*4(a0)             # restore f25
82    lw      f26, fr26*4(a0)             # restore f26
83    lw      f27, fr27*4(a0)             # restore f27
84    lw      f28, fr28*4(a0)             # restore f28
85    lw      f29, fr29*4(a0)             # restore f29
86    lw      f30, fr30*4(a0)             # restore f30
87    lw      f31, fr31*4(a0)             # restore f31
88#endif
89
90    lw      a0, r_A1*4(a0)              # restore a0
91    RETURN
92