Lines Matching refs:fpregs
171 static void parisc_linux_get_fpu_type(u_int fpregs[]) in parisc_linux_get_fpu_type() argument
177 fpregs[FPU_TYPE_FLAG_POS] = TIMEX_EXTEN_FLAG; in parisc_linux_get_fpu_type()
180 fpregs[FPU_TYPE_FLAG_POS] = ROLEX_EXTEN_FLAG; in parisc_linux_get_fpu_type()
182 fpregs[FPU_TYPE_FLAG_POS] = PA2_0_FPU_FLAG; in parisc_linux_get_fpu_type()
195 fpudispatch(u_int ir, u_int excp_code, u_int holder, u_int fpregs[]) in fpudispatch() argument
203 parisc_linux_get_fpu_type(fpregs); in fpudispatch()
205 fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS]; /* get fpu type flags */ in fpudispatch()
222 return(decode_0c(ir,class,subop,fpregs)); in fpudispatch()
224 return(decode_0e(ir,class,subop,fpregs)); in fpudispatch()
226 return(decode_06(ir,fpregs)); in fpudispatch()
228 return(decode_26(ir,fpregs)); in fpudispatch()
230 return(decode_2e(ir,fpregs)); in fpudispatch()
250 emfpudispatch(u_int ir, u_int dummy1, u_int dummy2, u_int fpregs[]) in emfpudispatch() argument
258 fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS]; /* get fpu type flags */ in emfpudispatch()
272 return(decode_0c(ir,class,subop,fpregs)); in emfpudispatch()
274 return(decode_0e(ir,class,subop,fpregs)); in emfpudispatch()
276 return(decode_06(ir,fpregs)); in emfpudispatch()
278 return(decode_26(ir,fpregs)); in emfpudispatch()
280 return(decode_2e(ir,fpregs)); in emfpudispatch()
288 decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[]) in decode_0c() argument
298 fpregs[0] = EMULATION_VERSION << 11; in decode_0c()
301 status = &fpregs[0]; /* fp status register */ in decode_0c()
302 local_status = fpregs[0]; /* and local copy */ in decode_0c()
324 fpregs[t+3] = fpregs[r1+3]; in decode_0c()
325 fpregs[t+2] = fpregs[r1+2]; in decode_0c()
327 fpregs[t+1] = fpregs[r1+1]; in decode_0c()
329 fpregs[t] = fpregs[r1]; in decode_0c()
339 fpregs[t+3] = fpregs[r1+3]; in decode_0c()
340 fpregs[t+2] = fpregs[r1+2]; in decode_0c()
342 fpregs[t+1] = fpregs[r1+1]; in decode_0c()
345 fpregs[t] = fpregs[r1] & 0x7fffffff; in decode_0c()
355 fpregs[t+3] = fpregs[r1+3]; in decode_0c()
356 fpregs[t+2] = fpregs[r1+2]; in decode_0c()
358 fpregs[t+1] = fpregs[r1+1]; in decode_0c()
361 fpregs[t] = fpregs[r1] ^ 0x80000000; in decode_0c()
371 fpregs[t+3] = fpregs[r1+3]; in decode_0c()
372 fpregs[t+2] = fpregs[r1+2]; in decode_0c()
374 fpregs[t+1] = fpregs[r1+1]; in decode_0c()
377 fpregs[t] = fpregs[r1] | 0x80000000; in decode_0c()
383 return(sgl_fsqrt(&fpregs[r1],0, in decode_0c()
384 &fpregs[t],status)); in decode_0c()
386 return(dbl_fsqrt(&fpregs[r1],0, in decode_0c()
387 &fpregs[t],status)); in decode_0c()
395 return(sgl_frnd(&fpregs[r1],0, in decode_0c()
396 &fpregs[t],status)); in decode_0c()
398 return(dbl_frnd(&fpregs[r1],0, in decode_0c()
399 &fpregs[t],status)); in decode_0c()
427 return(sgl_to_dbl_fcnvff(&fpregs[r1],0, in decode_0c()
428 &fpregs[t],status)); in decode_0c()
430 return(dbl_to_sgl_fcnvff(&fpregs[r1],0, in decode_0c()
431 &fpregs[t],status)); in decode_0c()
438 return(sgl_to_sgl_fcnvxf(&fpregs[r1],0, in decode_0c()
439 &fpregs[t],status)); in decode_0c()
441 return(sgl_to_dbl_fcnvxf(&fpregs[r1],0, in decode_0c()
442 &fpregs[t],status)); in decode_0c()
444 return(dbl_to_sgl_fcnvxf(&fpregs[r1],0, in decode_0c()
445 &fpregs[t],status)); in decode_0c()
447 return(dbl_to_dbl_fcnvxf(&fpregs[r1],0, in decode_0c()
448 &fpregs[t],status)); in decode_0c()
453 return(sgl_to_sgl_fcnvfx(&fpregs[r1],0, in decode_0c()
454 &fpregs[t],status)); in decode_0c()
456 return(sgl_to_dbl_fcnvfx(&fpregs[r1],0, in decode_0c()
457 &fpregs[t],status)); in decode_0c()
459 return(dbl_to_sgl_fcnvfx(&fpregs[r1],0, in decode_0c()
460 &fpregs[t],status)); in decode_0c()
462 return(dbl_to_dbl_fcnvfx(&fpregs[r1],0, in decode_0c()
463 &fpregs[t],status)); in decode_0c()
468 return(sgl_to_sgl_fcnvfxt(&fpregs[r1],0, in decode_0c()
469 &fpregs[t],status)); in decode_0c()
471 return(sgl_to_dbl_fcnvfxt(&fpregs[r1],0, in decode_0c()
472 &fpregs[t],status)); in decode_0c()
474 return(dbl_to_sgl_fcnvfxt(&fpregs[r1],0, in decode_0c()
475 &fpregs[t],status)); in decode_0c()
477 return(dbl_to_dbl_fcnvfxt(&fpregs[r1],0, in decode_0c()
478 &fpregs[t],status)); in decode_0c()
483 return(sgl_to_sgl_fcnvuf(&fpregs[r1],0, in decode_0c()
484 &fpregs[t],status)); in decode_0c()
486 return(sgl_to_dbl_fcnvuf(&fpregs[r1],0, in decode_0c()
487 &fpregs[t],status)); in decode_0c()
489 return(dbl_to_sgl_fcnvuf(&fpregs[r1],0, in decode_0c()
490 &fpregs[t],status)); in decode_0c()
492 return(dbl_to_dbl_fcnvuf(&fpregs[r1],0, in decode_0c()
493 &fpregs[t],status)); in decode_0c()
498 return(sgl_to_sgl_fcnvfu(&fpregs[r1],0, in decode_0c()
499 &fpregs[t],status)); in decode_0c()
501 return(sgl_to_dbl_fcnvfu(&fpregs[r1],0, in decode_0c()
502 &fpregs[t],status)); in decode_0c()
504 return(dbl_to_sgl_fcnvfu(&fpregs[r1],0, in decode_0c()
505 &fpregs[t],status)); in decode_0c()
507 return(dbl_to_dbl_fcnvfu(&fpregs[r1],0, in decode_0c()
508 &fpregs[t],status)); in decode_0c()
513 return(sgl_to_sgl_fcnvfut(&fpregs[r1],0, in decode_0c()
514 &fpregs[t],status)); in decode_0c()
516 return(sgl_to_dbl_fcnvfut(&fpregs[r1],0, in decode_0c()
517 &fpregs[t],status)); in decode_0c()
519 return(dbl_to_sgl_fcnvfut(&fpregs[r1],0, in decode_0c()
520 &fpregs[t],status)); in decode_0c()
522 return(dbl_to_dbl_fcnvfut(&fpregs[r1],0, in decode_0c()
523 &fpregs[t],status)); in decode_0c()
530 fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS]; in decode_0c()
558 retval = sgl_fcmp(&fpregs[r1], in decode_0c()
559 &fpregs[r2],extru(ir,fptpos,5), in decode_0c()
565 retval = dbl_fcmp(&fpregs[r1], in decode_0c()
566 &fpregs[r2],extru(ir,fptpos,5), in decode_0c()
589 retval = sgl_fcmp(&fpregs[r1], in decode_0c()
590 &fpregs[r2],extru(ir,fptpos,5), in decode_0c()
596 retval = dbl_fcmp(&fpregs[r1], in decode_0c()
597 &fpregs[r2],extru(ir,fptpos,5), in decode_0c()
640 return(sgl_fadd(&fpregs[r1],&fpregs[r2], in decode_0c()
641 &fpregs[t],status)); in decode_0c()
643 return(dbl_fadd(&fpregs[r1],&fpregs[r2], in decode_0c()
644 &fpregs[t],status)); in decode_0c()
652 return(sgl_fsub(&fpregs[r1],&fpregs[r2], in decode_0c()
653 &fpregs[t],status)); in decode_0c()
655 return(dbl_fsub(&fpregs[r1],&fpregs[r2], in decode_0c()
656 &fpregs[t],status)); in decode_0c()
664 return(sgl_fmpy(&fpregs[r1],&fpregs[r2], in decode_0c()
665 &fpregs[t],status)); in decode_0c()
667 return(dbl_fmpy(&fpregs[r1],&fpregs[r2], in decode_0c()
668 &fpregs[t],status)); in decode_0c()
676 return(sgl_fdiv(&fpregs[r1],&fpregs[r2], in decode_0c()
677 &fpregs[t],status)); in decode_0c()
679 return(dbl_fdiv(&fpregs[r1],&fpregs[r2], in decode_0c()
680 &fpregs[t],status)); in decode_0c()
688 return(sgl_frem(&fpregs[r1],&fpregs[r2], in decode_0c()
689 &fpregs[t],status)); in decode_0c()
691 return(dbl_frem(&fpregs[r1],&fpregs[r2], in decode_0c()
692 &fpregs[t],status)); in decode_0c()
705 decode_0e(ir,class,subop,fpregs) in decode_0e() argument
707 u_int fpregs[];
716 status = &fpregs[0];
717 local_status = fpregs[0];
751 fpregs[t+1] = fpregs[r1+1];
753 fpregs[t] = fpregs[r1];
762 fpregs[t+1] = fpregs[r1+1];
764 fpregs[t] = fpregs[r1] & 0x7fffffff;
773 fpregs[t+1] = fpregs[r1+1];
775 fpregs[t] = fpregs[r1] ^ 0x80000000;
784 fpregs[t+1] = fpregs[r1+1];
786 fpregs[t] = fpregs[r1] | 0x80000000;
792 return(sgl_fsqrt(&fpregs[r1],0,
793 &fpregs[t], status));
795 return(dbl_fsqrt(&fpregs[r1],0,
796 &fpregs[t], status));
804 return(sgl_frnd(&fpregs[r1],0,
805 &fpregs[t], status));
807 return(dbl_frnd(&fpregs[r1],0,
808 &fpregs[t], status));
834 return(sgl_to_dbl_fcnvff(&fpregs[r1],0,
835 &fpregs[t],status));
837 return(dbl_to_sgl_fcnvff(&fpregs[r1],0,
838 &fpregs[t],status));
845 return(sgl_to_sgl_fcnvxf(&fpregs[r1],0,
846 &fpregs[t],status));
848 return(sgl_to_dbl_fcnvxf(&fpregs[r1],0,
849 &fpregs[t],status));
851 return(dbl_to_sgl_fcnvxf(&fpregs[r1],0,
852 &fpregs[t],status));
854 return(dbl_to_dbl_fcnvxf(&fpregs[r1],0,
855 &fpregs[t],status));
860 return(sgl_to_sgl_fcnvfx(&fpregs[r1],0,
861 &fpregs[t],status));
863 return(sgl_to_dbl_fcnvfx(&fpregs[r1],0,
864 &fpregs[t],status));
866 return(dbl_to_sgl_fcnvfx(&fpregs[r1],0,
867 &fpregs[t],status));
869 return(dbl_to_dbl_fcnvfx(&fpregs[r1],0,
870 &fpregs[t],status));
875 return(sgl_to_sgl_fcnvfxt(&fpregs[r1],0,
876 &fpregs[t],status));
878 return(sgl_to_dbl_fcnvfxt(&fpregs[r1],0,
879 &fpregs[t],status));
881 return(dbl_to_sgl_fcnvfxt(&fpregs[r1],0,
882 &fpregs[t],status));
884 return(dbl_to_dbl_fcnvfxt(&fpregs[r1],0,
885 &fpregs[t],status));
890 return(sgl_to_sgl_fcnvuf(&fpregs[r1],0,
891 &fpregs[t],status));
893 return(sgl_to_dbl_fcnvuf(&fpregs[r1],0,
894 &fpregs[t],status));
896 return(dbl_to_sgl_fcnvuf(&fpregs[r1],0,
897 &fpregs[t],status));
899 return(dbl_to_dbl_fcnvuf(&fpregs[r1],0,
900 &fpregs[t],status));
905 return(sgl_to_sgl_fcnvfu(&fpregs[r1],0,
906 &fpregs[t],status));
908 return(sgl_to_dbl_fcnvfu(&fpregs[r1],0,
909 &fpregs[t],status));
911 return(dbl_to_sgl_fcnvfu(&fpregs[r1],0,
912 &fpregs[t],status));
914 return(dbl_to_dbl_fcnvfu(&fpregs[r1],0,
915 &fpregs[t],status));
920 return(sgl_to_sgl_fcnvfut(&fpregs[r1],0,
921 &fpregs[t],status));
923 return(sgl_to_dbl_fcnvfut(&fpregs[r1],0,
924 &fpregs[t],status));
926 return(dbl_to_sgl_fcnvfut(&fpregs[r1],0,
927 &fpregs[t],status));
929 return(dbl_to_dbl_fcnvfut(&fpregs[r1],0,
930 &fpregs[t],status));
948 fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS];
962 retval = sgl_fcmp(&fpregs[r1],
963 &fpregs[r2],extru(ir,fptpos,5),
969 retval = dbl_fcmp(&fpregs[r1],
970 &fpregs[r2],extru(ir,fptpos,5),
994 retval = sgl_fcmp(&fpregs[r1],
995 &fpregs[r2],extru(ir,fptpos,5),
1001 retval = dbl_fcmp(&fpregs[r1],
1002 &fpregs[r2],extru(ir,fptpos,5),
1036 return(sgl_fadd(&fpregs[r1],&fpregs[r2],
1037 &fpregs[t],status));
1039 return(dbl_fadd(&fpregs[r1],&fpregs[r2],
1040 &fpregs[t],status));
1045 return(sgl_fsub(&fpregs[r1],&fpregs[r2],
1046 &fpregs[t],status));
1048 return(dbl_fsub(&fpregs[r1],&fpregs[r2],
1049 &fpregs[t],status));
1080 return(sgl_fmpy(&fpregs[r1],
1081 &fpregs[r2],&fpregs[t],status));
1083 return(dbl_fmpy(&fpregs[r1],
1084 &fpregs[r2],&fpregs[t],status));
1090 return(sgl_fdiv(&fpregs[r1],&fpregs[r2],
1091 &fpregs[t],status));
1093 return(dbl_fdiv(&fpregs[r1],&fpregs[r2],
1094 &fpregs[t],status));
1099 return(sgl_frem(&fpregs[r1],&fpregs[r2],
1100 &fpregs[t],status));
1102 return(dbl_frem(&fpregs[r1],&fpregs[r2],
1103 &fpregs[t],status));
1117 decode_06(ir,fpregs) in decode_06() argument
1119 u_int fpregs[];
1133 status = fpregs[0]; /* use a local copy of status reg */
1134 fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS]; /* get fpu type flags */
1155 if (dbl_fmpy(&fpregs[rm1],&fpregs[rm2],
1158 if (dbl_to_sgl_fcnvfxt(&fpregs[ta],
1164 if (dbl_fmpy(&fpregs[rm1],&fpregs[rm2],&mtmp.ints.i1,
1167 if (dbl_fadd(&fpregs[ta], &fpregs[ra], &atmp.ints.i1,
1179 if (dbl_fmpy(&fpregs[rm1],&fpregs[rm2],&mtmp.ints.i1,
1182 if (dbl_fadd(&fpregs[ta], &fpregs[ra], &atmp.ints.i1,
1192 fpregs[tm] = mtmp.ints.i1;
1193 fpregs[tm+1] = mtmp.ints.i2;
1194 fpregs[ta] = atmp.ints.i1;
1195 fpregs[ta+1] = atmp.ints.i2;
1196 fpregs[0] = status;
1226 if (sgl_fmpy(&fpregs[rm1],&fpregs[rm2],&mtmp.ints.i1,
1229 if (sgl_to_sgl_fcnvfxt(&fpregs[ta],&atmp.ints.i1,
1234 if (sgl_fmpy(&fpregs[rm1],&fpregs[rm2],&mtmp.ints.i1,
1237 if (sgl_fadd(&fpregs[ta], &fpregs[ra], &atmp.ints.i1,
1245 fpregs[tm] = mtmp.ints.i1;
1246 fpregs[ta] = atmp.ints.i1;
1247 fpregs[0] = status;
1257 decode_26(ir,fpregs) in decode_26() argument
1259 u_int fpregs[];
1272 status = fpregs[0];
1291 if (dbl_fmpy(&fpregs[rm1],&fpregs[rm2],&mtmp.ints.i1,&status))
1293 if (dbl_fsub(&fpregs[ta], &fpregs[ra], &atmp.ints.i1,&status))
1299 fpregs[tm] = mtmp.ints.i1;
1300 fpregs[tm+1] = mtmp.ints.i2;
1301 fpregs[ta] = atmp.ints.i1;
1302 fpregs[ta+1] = atmp.ints.i2;
1303 fpregs[0] = status;
1327 if (sgl_fmpy(&fpregs[rm1],&fpregs[rm2],&mtmp.ints.i1,&status))
1329 if (sgl_fsub(&fpregs[ta], &fpregs[ra], &atmp.ints.i1,&status))
1335 fpregs[tm] = mtmp.ints.i1;
1336 fpregs[ta] = atmp.ints.i1;
1337 fpregs[0] = status;
1348 decode_2e(ir,fpregs) in decode_2e() argument
1350 u_int fpregs[];
1372 return(dbl_fmpynfadd(&fpregs[rm1], &fpregs[rm2],
1373 &fpregs[ra], &fpregs[0], &fpregs[t]));
1375 return(dbl_fmpyfadd(&fpregs[rm1], &fpregs[rm2],
1376 &fpregs[ra], &fpregs[0], &fpregs[t]));
1394 return(sgl_fmpynfadd(&fpregs[rm1], &fpregs[rm2],
1395 &fpregs[ra], &fpregs[0], &fpregs[t]));
1397 return(sgl_fmpyfadd(&fpregs[rm1], &fpregs[rm2],
1398 &fpregs[ra], &fpregs[0], &fpregs[t]));