Subversion Repositories HelenOS

Rev

Rev 2787 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2787 Rev 4377
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"