Rev 2071 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2071 | Rev 3766 | ||
|---|---|---|---|
| Line 147... | Line 147... | ||
| 147 | "stf.spill [%5] = f125, 0x80\n" |
147 | "stf.spill [%5] = f125, 0x80\n" |
| 148 | "stf.spill [%6] = f126, 0x80\n" |
148 | "stf.spill [%6] = f126, 0x80\n" |
| 149 | "stf.spill [%7] = f127, 0x80\n;;" |
149 | "stf.spill [%7] = f127, 0x80\n;;" |
| 150 | 150 | ||
| 151 | : |
151 | : |
| - | 152 | : "r" (&((fctx->fr)[0])), "r" (&((fctx->fr)[1])), |
|
| 152 | : "r" (&((fctx->fr)[0])), "r" (&((fctx->fr)[1])), "r" (&((fctx->fr)[2])), "r" (&((fctx->fr)[3])), |
153 | "r" (&((fctx->fr)[2])), "r" (&((fctx->fr)[3])), |
| 153 | "r" (&((fctx->fr)[4])), "r" (&((fctx->fr)[5])), "r" (&((fctx->fr)[6])), "r" (&((fctx->fr)[7])) |
154 | "r" (&((fctx->fr)[4])), "r" (&((fctx->fr)[5])), |
| - | 155 | "r" (&((fctx->fr)[6])), "r" (&((fctx->fr)[7])) |
|
| 154 | ); |
156 | ); |
| 155 | 157 | ||
| 156 | } |
158 | } |
| 157 | 159 | ||
| 158 | void fpu_context_restore(fpu_context_t *fctx) |
160 | void fpu_context_restore(fpu_context_t *fctx) |
| Line 265... | Line 267... | ||
| 265 | "ldf.fill f125 = [%5], 0x80\n" |
267 | "ldf.fill f125 = [%5], 0x80\n" |
| 266 | "ldf.fill f126 = [%6], 0x80\n" |
268 | "ldf.fill f126 = [%6], 0x80\n" |
| 267 | "ldf.fill f127 = [%7], 0x80\n;;" |
269 | "ldf.fill f127 = [%7], 0x80\n;;" |
| 268 | 270 | ||
| 269 | : |
271 | : |
| - | 272 | : "r" (&((fctx->fr)[0])), "r" (&((fctx->fr)[1])), |
|
| 270 | : "r" (&((fctx->fr)[0])), "r" (&((fctx->fr)[1])), "r" (&((fctx->fr)[2])), "r" (&((fctx->fr)[3])), |
273 | "r" (&((fctx->fr)[2])), "r" (&((fctx->fr)[3])), |
| 271 | "r" (&((fctx->fr)[4])), "r" (&((fctx->fr)[5])), "r" (&((fctx->fr)[6])), "r" (&((fctx->fr)[7])) |
274 | "r" (&((fctx->fr)[4])), "r" (&((fctx->fr)[5])), |
| - | 275 | "r" (&((fctx->fr)[6])), "r" (&((fctx->fr)[7])) |
|
| 272 | ); |
276 | ); |
| 273 | } |
277 | } |
| 274 | 278 | ||
| 275 | void fpu_enable(void) |
279 | void fpu_enable(void) |
| 276 | { |
280 | { |
| 277 | uint64_t a = 0 ; |
281 | uint64_t a = 0; |
| 278 | 282 | ||
| 279 | asm volatile ( |
283 | asm volatile ( |
| 280 | "rsm %0 ;;" |
284 | "rsm %0 ;;" |
| 281 | "srlz.i\n" |
285 | "srlz.i\n" |
| 282 | "srlz.d ;;\n" |
286 | "srlz.d ;;\n" |