Rev 414 | Rev 435 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 414 | Rev 416 | ||
---|---|---|---|
Line 111... | Line 111... | ||
111 | 111 | ||
112 | add r8 = r0, r0, 1 /* context_save returns 1 */ |
112 | add r8 = r0, r0, 1 /* context_save returns 1 */ |
113 | br.ret.sptk.many b0 |
113 | br.ret.sptk.many b0 |
114 | 114 | ||
115 | context_restore_arch: |
115 | context_restore_arch: |
116 | alloc loc0 = ar.pfs, 1, 8, 0, 0 ;; |
116 | alloc loc0 = ar.pfs, 1, 9, 0, 0 ;; |
117 | 117 | ||
118 | ld8 loc0 = [in0], 8 ;; /* load ar.pfs */ |
118 | ld8 loc0 = [in0], 8 ;; /* load ar.pfs */ |
119 | ld8 loc1 = [in0], 8 ;; /* load ar.unat (caller) */ |
119 | ld8 loc1 = [in0], 8 ;; /* load ar.unat (caller) */ |
120 | ld8 loc2 = [in0], 8 ;; /* load ar.unat (callee) */ |
120 | ld8 loc2 = [in0], 8 ;; /* load ar.unat (callee) */ |
121 | ld8 loc3 = [in0], 8 ;; /* load ar.rsc */ |
121 | ld8 loc3 = [in0], 8 ;; /* load ar.rsc */ |
Line 129... | Line 129... | ||
129 | * Invalidate the ALAT |
129 | * Invalidate the ALAT |
130 | */ |
130 | */ |
131 | invala |
131 | invala |
132 | 132 | ||
133 | /* |
133 | /* |
- | 134 | * Put RSE to enforced lazy mode. |
|
134 | * Restore application registers |
135 | * So that ar.bspstore and ar.rnat can be written. |
- | 136 | */ |
|
- | 137 | movl loc8 = ~3 |
|
- | 138 | and loc8 = loc3, loc8 |
|
- | 139 | mov ar.rsc = loc8 |
|
- | 140 | ||
- | 141 | /* |
|
- | 142 | * Flush dirty registers to backing store. |
|
- | 143 | * We do this because we want the following move |
|
- | 144 | * to ar.bspstore to assign the same value to ar.bsp. |
|
135 | */ |
145 | */ |
- | 146 | flushrs |
|
136 | 147 | ||
- | 148 | /* |
|
137 | /* TODO: ensure RSE lazy mode */ |
149 | * Restore application registers |
- | 150 | */ |
|
138 | mov ar.bspstore = loc4 |
151 | mov ar.bspstore = loc4 /* rse.bspload = ar.bsp = ar.bspstore = loc4 */ |
139 | mov ar.rnat = loc5 |
152 | mov ar.rnat = loc5 |
140 | mov ar.pfs = loc0 |
153 | mov ar.pfs = loc0 |
141 | mov ar.rsc = loc3 |
154 | mov ar.rsc = loc3 |
142 | 155 | ||
143 | .explicit |
156 | .explicit |