Lines Matching refs:fpregs

19  *	emfpudispatch(ir, dummy1, dummy2, fpregs)
20 * fpudispatch(ir, excp_code, holder, fpregs)
158 static void parisc_linux_get_fpu_type(u_int fpregs[])
164 fpregs[FPU_TYPE_FLAG_POS] = TIMEX_EXTEN_FLAG;
167 fpregs[FPU_TYPE_FLAG_POS] = ROLEX_EXTEN_FLAG;
169 fpregs[FPU_TYPE_FLAG_POS] = PA2_0_FPU_FLAG;
182 fpudispatch(u_int ir, u_int excp_code, u_int holder, u_int fpregs[])
190 parisc_linux_get_fpu_type(fpregs);
192 fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS]; /* get fpu type flags */
209 return(decode_0c(ir,class,subop,fpregs));
211 return(decode_0e(ir,class,subop,fpregs));
213 return(decode_06(ir,fpregs));
215 return(decode_26(ir,fpregs));
217 return(decode_2e(ir,fpregs));
237 emfpudispatch(u_int ir, u_int dummy1, u_int dummy2, u_int fpregs[])
245 fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS]; /* get fpu type flags */
259 return(decode_0c(ir,class,subop,fpregs));
261 return(decode_0e(ir,class,subop,fpregs));
263 return(decode_06(ir,fpregs));
265 return(decode_26(ir,fpregs));
267 return(decode_2e(ir,fpregs));
275 decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
285 fpregs[0] = EMULATION_VERSION << 11;
288 status = &fpregs[0]; /* fp status register */
289 local_status = fpregs[0]; /* and local copy */
311 fpregs[t+3] = fpregs[r1+3];
312 fpregs[t+2] = fpregs[r1+2];
315 fpregs[t+1] = fpregs[r1+1];
318 fpregs[t] = fpregs[r1];
329 fpregs[t+3] = fpregs[r1+3];
330 fpregs[t+2] = fpregs[r1+2];
333 fpregs[t+1] = fpregs[r1+1];
337 fpregs[t] = fpregs[r1] & 0x7fffffff;
348 fpregs[t+3] = fpregs[r1+3];
349 fpregs[t+2] = fpregs[r1+2];
352 fpregs[t+1] = fpregs[r1+1];
356 fpregs[t] = fpregs[r1] ^ 0x80000000;
367 fpregs[t+3] = fpregs[r1+3];
368 fpregs[t+2] = fpregs[r1+2];
371 fpregs[t+1] = fpregs[r1+1];
375 fpregs[t] = fpregs[r1] | 0x80000000;
382 return(sgl_fsqrt(&fpregs[r1],0,
383 &fpregs[t],status));
385 return(dbl_fsqrt(&fpregs[r1],0,
386 &fpregs[t],status));
395 return(sgl_frnd(&fpregs[r1],0,
396 &fpregs[t],status));
398 return(dbl_frnd(&fpregs[r1],0,
399 &fpregs[t],status));
427 return(sgl_to_dbl_fcnvff(&fpregs[r1],0,
428 &fpregs[t],status));
430 return(dbl_to_sgl_fcnvff(&fpregs[r1],0,
431 &fpregs[t],status));
439 return(sgl_to_sgl_fcnvxf(&fpregs[r1],0,
440 &fpregs[t],status));
442 return(sgl_to_dbl_fcnvxf(&fpregs[r1],0,
443 &fpregs[t],status));
445 return(dbl_to_sgl_fcnvxf(&fpregs[r1],0,
446 &fpregs[t],status));
448 return(dbl_to_dbl_fcnvxf(&fpregs[r1],0,
449 &fpregs[t],status));
455 return(sgl_to_sgl_fcnvfx(&fpregs[r1],0,
456 &fpregs[t],status));
458 return(sgl_to_dbl_fcnvfx(&fpregs[r1],0,
459 &fpregs[t],status));
461 return(dbl_to_sgl_fcnvfx(&fpregs[r1],0,
462 &fpregs[t],status));
464 return(dbl_to_dbl_fcnvfx(&fpregs[r1],0,
465 &fpregs[t],status));
471 return(sgl_to_sgl_fcnvfxt(&fpregs[r1],0,
472 &fpregs[t],status));
474 return(sgl_to_dbl_fcnvfxt(&fpregs[r1],0,
475 &fpregs[t],status));
477 return(dbl_to_sgl_fcnvfxt(&fpregs[r1],0,
478 &fpregs[t],status));
480 return(dbl_to_dbl_fcnvfxt(&fpregs[r1],0,
481 &fpregs[t],status));
487 return(sgl_to_sgl_fcnvuf(&fpregs[r1],0,
488 &fpregs[t],status));
490 return(sgl_to_dbl_fcnvuf(&fpregs[r1],0,
491 &fpregs[t],status));
493 return(dbl_to_sgl_fcnvuf(&fpregs[r1],0,
494 &fpregs[t],status));
496 return(dbl_to_dbl_fcnvuf(&fpregs[r1],0,
497 &fpregs[t],status));
503 return(sgl_to_sgl_fcnvfu(&fpregs[r1],0,
504 &fpregs[t],status));
506 return(sgl_to_dbl_fcnvfu(&fpregs[r1],0,
507 &fpregs[t],status));
509 return(dbl_to_sgl_fcnvfu(&fpregs[r1],0,
510 &fpregs[t],status));
512 return(dbl_to_dbl_fcnvfu(&fpregs[r1],0,
513 &fpregs[t],status));
519 return(sgl_to_sgl_fcnvfut(&fpregs[r1],0,
520 &fpregs[t],status));
522 return(sgl_to_dbl_fcnvfut(&fpregs[r1],0,
523 &fpregs[t],status));
525 return(dbl_to_sgl_fcnvfut(&fpregs[r1],0,
526 &fpregs[t],status));
528 return(dbl_to_dbl_fcnvfut(&fpregs[r1],0,
529 &fpregs[t],status));
537 fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS];
555 * &fpregs[0],subop));
565 retval = sgl_fcmp(&fpregs[r1],
566 &fpregs[r2],extru(ir,fptpos,5),
572 retval = dbl_fcmp(&fpregs[r1],
573 &fpregs[r2],extru(ir,fptpos,5),
596 retval = sgl_fcmp(&fpregs[r1],
597 &fpregs[r2],extru(ir,fptpos,5),
603 retval = dbl_fcmp(&fpregs[r1],
604 &fpregs[r2],extru(ir,fptpos,5),
626 * &fpregs[0],subop));
650 return(sgl_fadd(&fpregs[r1],&fpregs[r2],
651 &fpregs[t],status));
653 return(dbl_fadd(&fpregs[r1],&fpregs[r2],
654 &fpregs[t],status));
663 return(sgl_fsub(&fpregs[r1],&fpregs[r2],
664 &fpregs[t],status));
666 return(dbl_fsub(&fpregs[r1],&fpregs[r2],
667 &fpregs[t],status));
676 return(sgl_fmpy(&fpregs[r1],&fpregs[r2],
677 &fpregs[t],status));
679 return(dbl_fmpy(&fpregs[r1],&fpregs[r2],
680 &fpregs[t],status));
689 return(sgl_fdiv(&fpregs[r1],&fpregs[r2],
690 &fpregs[t],status));
692 return(dbl_fdiv(&fpregs[r1],&fpregs[r2],
693 &fpregs[t],status));
702 return(sgl_frem(&fpregs[r1],&fpregs[r2],
703 &fpregs[t],status));
705 return(dbl_frem(&fpregs[r1],&fpregs[r2],
706 &fpregs[t],status));
720 decode_0e(ir,class,subop,fpregs)
722 u_int fpregs[];
731 status = &fpregs[0];
732 local_status = fpregs[0];
766 fpregs[t+1] = fpregs[r1+1];
769 fpregs[t] = fpregs[r1];
779 fpregs[t+1] = fpregs[r1+1];
782 fpregs[t] = fpregs[r1] & 0x7fffffff;
792 fpregs[t+1] = fpregs[r1+1];
795 fpregs[t] = fpregs[r1] ^ 0x80000000;
805 fpregs[t+1] = fpregs[r1+1];
808 fpregs[t] = fpregs[r1] | 0x80000000;
815 return(sgl_fsqrt(&fpregs[r1],0,
816 &fpregs[t], status));
818 return(dbl_fsqrt(&fpregs[r1],0,
819 &fpregs[t], status));
828 return(sgl_frnd(&fpregs[r1],0,
829 &fpregs[t], status));
831 return(dbl_frnd(&fpregs[r1],0,
832 &fpregs[t], status));
858 return(sgl_to_dbl_fcnvff(&fpregs[r1],0,
859 &fpregs[t],status));
861 return(dbl_to_sgl_fcnvff(&fpregs[r1],0,
862 &fpregs[t],status));
870 return(sgl_to_sgl_fcnvxf(&fpregs[r1],0,
871 &fpregs[t],status));
873 return(sgl_to_dbl_fcnvxf(&fpregs[r1],0,
874 &fpregs[t],status));
876 return(dbl_to_sgl_fcnvxf(&fpregs[r1],0,
877 &fpregs[t],status));
879 return(dbl_to_dbl_fcnvxf(&fpregs[r1],0,
880 &fpregs[t],status));
886 return(sgl_to_sgl_fcnvfx(&fpregs[r1],0,
887 &fpregs[t],status));
889 return(sgl_to_dbl_fcnvfx(&fpregs[r1],0,
890 &fpregs[t],status));
892 return(dbl_to_sgl_fcnvfx(&fpregs[r1],0,
893 &fpregs[t],status));
895 return(dbl_to_dbl_fcnvfx(&fpregs[r1],0,
896 &fpregs[t],status));
902 return(sgl_to_sgl_fcnvfxt(&fpregs[r1],0,
903 &fpregs[t],status));
905 return(sgl_to_dbl_fcnvfxt(&fpregs[r1],0,
906 &fpregs[t],status));
908 return(dbl_to_sgl_fcnvfxt(&fpregs[r1],0,
909 &fpregs[t],status));
911 return(dbl_to_dbl_fcnvfxt(&fpregs[r1],0,
912 &fpregs[t],status));
918 return(sgl_to_sgl_fcnvuf(&fpregs[r1],0,
919 &fpregs[t],status));
921 return(sgl_to_dbl_fcnvuf(&fpregs[r1],0,
922 &fpregs[t],status));
924 return(dbl_to_sgl_fcnvuf(&fpregs[r1],0,
925 &fpregs[t],status));
927 return(dbl_to_dbl_fcnvuf(&fpregs[r1],0,
928 &fpregs[t],status));
934 return(sgl_to_sgl_fcnvfu(&fpregs[r1],0,
935 &fpregs[t],status));
937 return(sgl_to_dbl_fcnvfu(&fpregs[r1],0,
938 &fpregs[t],status));
940 return(dbl_to_sgl_fcnvfu(&fpregs[r1],0,
941 &fpregs[t],status));
943 return(dbl_to_dbl_fcnvfu(&fpregs[r1],0,
944 &fpregs[t],status));
950 return(sgl_to_sgl_fcnvfut(&fpregs[r1],0,
951 &fpregs[t],status));
953 return(sgl_to_dbl_fcnvfut(&fpregs[r1],0,
954 &fpregs[t],status));
956 return(dbl_to_sgl_fcnvfut(&fpregs[r1],0,
957 &fpregs[t],status));
959 return(dbl_to_dbl_fcnvfut(&fpregs[r1],0,
960 &fpregs[t],status));
980 fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS];
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),
1026 retval = sgl_fcmp(&fpregs[r1],
1027 &fpregs[r2],extru(ir,fptpos,5),
1033 retval = dbl_fcmp(&fpregs[r1],
1034 &fpregs[r2],extru(ir,fptpos,5),
1069 return(sgl_fadd(&fpregs[r1],&fpregs[r2],
1070 &fpregs[t],status));
1072 return(dbl_fadd(&fpregs[r1],&fpregs[r2],
1073 &fpregs[t],status));
1079 return(sgl_fsub(&fpregs[r1],&fpregs[r2],
1080 &fpregs[t],status));
1082 return(dbl_fsub(&fpregs[r1],&fpregs[r2],
1083 &fpregs[t],status));
1104 * impyu(&fpregs[r1],&fpregs[r2],
1105 * &fpregs[t]);
1115 return(sgl_fmpy(&fpregs[r1],
1116 &fpregs[r2],&fpregs[t],status));
1118 return(dbl_fmpy(&fpregs[r1],
1119 &fpregs[r2],&fpregs[t],status));
1126 return(sgl_fdiv(&fpregs[r1],&fpregs[r2],
1127 &fpregs[t],status));
1129 return(dbl_fdiv(&fpregs[r1],&fpregs[r2],
1130 &fpregs[t],status));
1136 return(sgl_frem(&fpregs[r1],&fpregs[r2],
1137 &fpregs[t],status));
1139 return(dbl_frem(&fpregs[r1],&fpregs[r2],
1140 &fpregs[t],status));
1154 decode_06(ir,fpregs)
1156 u_int fpregs[];
1170 status = fpregs[0]; /* use a local copy of status reg */
1171 fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS]; /* get fpu type flags */
1192 if (dbl_fmpy(&fpregs[rm1],&fpregs[rm2],
1195 if (dbl_to_sgl_fcnvfxt(&fpregs[ta],
1201 if (dbl_fmpy(&fpregs[rm1],&fpregs[rm2],&mtmp.ints.i1,
1204 if (dbl_fadd(&fpregs[ta], &fpregs[ra], &atmp.ints.i1,
1216 if (dbl_fmpy(&fpregs[rm1],&fpregs[rm2],&mtmp.ints.i1,
1219 if (dbl_fadd(&fpregs[ta], &fpregs[ra], &atmp.ints.i1,
1229 fpregs[tm] = mtmp.ints.i1;
1230 fpregs[tm+1] = mtmp.ints.i2;
1231 fpregs[ta] = atmp.ints.i1;
1232 fpregs[ta+1] = atmp.ints.i2;
1233 fpregs[0] = status;
1263 if (sgl_fmpy(&fpregs[rm1],&fpregs[rm2],&mtmp.ints.i1,
1266 if (sgl_to_sgl_fcnvfxt(&fpregs[ta],&atmp.ints.i1,
1271 if (sgl_fmpy(&fpregs[rm1],&fpregs[rm2],&mtmp.ints.i1,
1274 if (sgl_fadd(&fpregs[ta], &fpregs[ra], &atmp.ints.i1,
1282 fpregs[tm] = mtmp.ints.i1;
1283 fpregs[ta] = atmp.ints.i1;
1284 fpregs[0] = status;
1294 decode_26(ir,fpregs)
1296 u_int fpregs[];
1309 status = fpregs[0];
1328 if (dbl_fmpy(&fpregs[rm1],&fpregs[rm2],&mtmp.ints.i1,&status))
1330 if (dbl_fsub(&fpregs[ta], &fpregs[ra], &atmp.ints.i1,&status))
1336 fpregs[tm] = mtmp.ints.i1;
1337 fpregs[tm+1] = mtmp.ints.i2;
1338 fpregs[ta] = atmp.ints.i1;
1339 fpregs[ta+1] = atmp.ints.i2;
1340 fpregs[0] = status;
1364 if (sgl_fmpy(&fpregs[rm1],&fpregs[rm2],&mtmp.ints.i1,&status))
1366 if (sgl_fsub(&fpregs[ta], &fpregs[ra], &atmp.ints.i1,&status))
1372 fpregs[tm] = mtmp.ints.i1;
1373 fpregs[ta] = atmp.ints.i1;
1374 fpregs[0] = status;
1385 decode_2e(ir,fpregs)
1387 u_int fpregs[];
1409 return(dbl_fmpynfadd(&fpregs[rm1], &fpregs[rm2],
1410 &fpregs[ra], &fpregs[0], &fpregs[t]));
1412 return(dbl_fmpyfadd(&fpregs[rm1], &fpregs[rm2],
1413 &fpregs[ra], &fpregs[0], &fpregs[t]));
1431 return(sgl_fmpynfadd(&fpregs[rm1], &fpregs[rm2],
1432 &fpregs[ra], &fpregs[0], &fpregs[t]));
1434 return(sgl_fmpyfadd(&fpregs[rm1], &fpregs[rm2],
1435 &fpregs[ra], &fpregs[0], &fpregs[t]));