Print this page


Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/m9x/__fex_sparc.c
          +++ new/usr/src/lib/libm/common/m9x/__fex_sparc.c
↓ open down ↓ 654 lines elided ↑ open up ↑
 655  655                                  info->res.val.i = (int) info->res.val.f;
 656  656                                  break;
 657  657  
 658  658                          case fex_double:
 659  659                                  info->res.val.i = (int) info->res.val.d;
 660  660                                  break;
 661  661  
 662  662                          case fex_ldouble:
 663  663                                  info->res.val.i = (int) info->res.val.q;
 664  664                                  break;
      665 +
      666 +                        default:
      667 +                                break;
 665  668                          }
 666  669                          *(int*)FPreg(rd) = info->res.val.i;
 667  670                          return;
 668  671                  }
 669  672  
 670  673                  switch (opf & 0xc) {
 671  674                  case 0: /* result is long long */
 672  675                          switch (info->res.type) {
 673  676                          case fex_int:
 674  677                                  info->res.val.l = (long long) info->res.val.i;
↓ open down ↓ 3 lines elided ↑ open up ↑
 678  681                                  info->res.val.l = (long long) info->res.val.f;
 679  682                                  break;
 680  683  
 681  684                          case fex_double:
 682  685                                  info->res.val.l = (long long) info->res.val.d;
 683  686                                  break;
 684  687  
 685  688                          case fex_ldouble:
 686  689                                  info->res.val.l = (long long) info->res.val.q;
 687  690                                  break;
      691 +
      692 +                        default:
      693 +                                break;
 688  694                          }
 689  695                          *(long long*)FPREG(rd) = info->res.val.l;
 690  696                          break;
 691  697  
 692  698                  case 0x4: /* result is float */
 693  699                          switch (info->res.type) {
 694  700                          case fex_int:
 695  701                                  info->res.val.f = (float) info->res.val.i;
 696  702                                  break;
 697  703  
↓ open down ↓ 1 lines elided ↑ open up ↑
 699  705                                  info->res.val.f = (float) info->res.val.l;
 700  706                                  break;
 701  707  
 702  708                          case fex_double:
 703  709                                  info->res.val.f = (float) info->res.val.d;
 704  710                                  break;
 705  711  
 706  712                          case fex_ldouble:
 707  713                                  info->res.val.f = (float) info->res.val.q;
 708  714                                  break;
      715 +
      716 +                        default:
      717 +                                break;
 709  718                          }
 710  719                          *(float*)FPreg(rd) = info->res.val.f;
 711  720                          break;
 712  721  
 713  722                  case 0x8: /* result is double */
 714  723                          switch (info->res.type) {
 715  724                          case fex_int:
 716  725                                  info->res.val.d = (double) info->res.val.i;
 717  726                                  break;
 718  727  
↓ open down ↓ 1 lines elided ↑ open up ↑
 720  729                                  info->res.val.d = (double) info->res.val.l;
 721  730                                  break;
 722  731  
 723  732                          case fex_float:
 724  733                                  info->res.val.d = (double) info->res.val.f;
 725  734                                  break;
 726  735  
 727  736                          case fex_ldouble:
 728  737                                  info->res.val.d = (double) info->res.val.q;
 729  738                                  break;
      739 +
      740 +                        default:
      741 +                                break;
 730  742                          }
 731  743                          *(double*)FPREG(rd) = info->res.val.d;
 732  744                          break;
 733  745  
 734  746                  case 0xc: /* result is long double */
 735  747                          switch (info->res.type) {
 736  748                          case fex_int:
 737  749                                  info->res.val.q = (long double) info->res.val.i;
 738  750                                  break;
 739  751  
↓ open down ↓ 1 lines elided ↑ open up ↑
 741  753                                  info->res.val.q = (long double) info->res.val.l;
 742  754                                  break;
 743  755  
 744  756                          case fex_float:
 745  757                                  info->res.val.q = (long double) info->res.val.f;
 746  758                                  break;
 747  759  
 748  760                          case fex_double:
 749  761                                  info->res.val.q = (long double) info->res.val.d;
 750  762                                  break;
      763 +
      764 +                        default:
      765 +                                break;
 751  766                          }
 752  767                          *(long double*)FPREG(rd) = info->res.val.q;
 753  768                          break;
 754  769                  }
 755  770                  return;
 756  771          }
 757  772  
 758  773          if ((opf & 0xf0) == 0x60) { /* fsmuld, fdmulq */
 759  774                  switch (opf & 0xc0) {
 760  775                  case 0x8: /* result is double */
↓ open down ↓ 6 lines elided ↑ open up ↑
 767  782                                  info->res.val.d = (double) info->res.val.l;
 768  783                                  break;
 769  784  
 770  785                          case fex_float:
 771  786                                  info->res.val.d = (double) info->res.val.f;
 772  787                                  break;
 773  788  
 774  789                          case fex_ldouble:
 775  790                                  info->res.val.d = (double) info->res.val.q;
 776  791                                  break;
      792 +
      793 +                        default:
      794 +                                break;
 777  795                          }
 778  796                          *(double*)FPREG(rd) = info->res.val.d;
 779  797                          break;
 780  798  
 781  799                  case 0xc: /* result is long double */
 782  800                          switch (info->res.type) {
 783  801                          case fex_int:
 784  802                                  info->res.val.q = (long double) info->res.val.i;
 785  803                                  break;
 786  804  
↓ open down ↓ 1 lines elided ↑ open up ↑
 788  806                                  info->res.val.q = (long double) info->res.val.l;
 789  807                                  break;
 790  808  
 791  809                          case fex_float:
 792  810                                  info->res.val.q = (long double) info->res.val.f;
 793  811                                  break;
 794  812  
 795  813                          case fex_double:
 796  814                                  info->res.val.q = (long double) info->res.val.d;
 797  815                                  break;
      816 +
      817 +                        default:
      818 +                                break;
 798  819                          }
 799  820                          *(long double*)FPREG(rd) = info->res.val.q;
 800  821                          break;
 801  822                  }
 802  823                  return;
 803  824          }
 804  825  
 805  826          switch (opf & 3) { /* other arithmetic op */
 806  827          case 1: /* result is float */
 807  828                  switch (info->res.type) {
↓ open down ↓ 5 lines elided ↑ open up ↑
 813  834                          info->res.val.f = (float) info->res.val.l;
 814  835                          break;
 815  836  
 816  837                  case fex_double:
 817  838                          info->res.val.f = (float) info->res.val.d;
 818  839                          break;
 819  840  
 820  841                  case fex_ldouble:
 821  842                          info->res.val.f = (float) info->res.val.q;
 822  843                          break;
      844 +
      845 +                default:
      846 +                        break;
 823  847                  }
 824  848                  *(float*)FPreg(rd) = info->res.val.f;
 825  849                  break;
 826  850  
 827  851          case 2: /* result is double */
 828  852                  switch (info->res.type) {
 829  853                  case fex_int:
 830  854                          info->res.val.d = (double) info->res.val.i;
 831  855                          break;
 832  856  
↓ open down ↓ 1 lines elided ↑ open up ↑
 834  858                          info->res.val.d = (double) info->res.val.l;
 835  859                          break;
 836  860  
 837  861                  case fex_float:
 838  862                          info->res.val.d = (double) info->res.val.f;
 839  863                          break;
 840  864  
 841  865                  case fex_ldouble:
 842  866                          info->res.val.d = (double) info->res.val.q;
 843  867                          break;
      868 +
      869 +                default:
      870 +                        break;
 844  871                  }
 845  872                  *(double*)FPREG(rd) = info->res.val.d;
 846  873                  break;
 847  874  
 848  875          case 3: /* result is long double */
 849  876                  switch (info->res.type) {
 850  877                  case fex_int:
 851  878                          info->res.val.q = (long double) info->res.val.i;
 852  879                          break;
 853  880  
 854  881                  case fex_llong:
 855  882                          info->res.val.q = (long double) info->res.val.l;
 856  883                          break;
 857  884  
 858  885                  case fex_float:
 859  886                          info->res.val.q = (long double) info->res.val.f;
 860  887                          break;
 861  888  
 862  889                  case fex_double:
 863  890                          info->res.val.q = (long double) info->res.val.d;
      891 +                        break;
      892 +
      893 +                default:
 864  894                          break;
 865  895                  }
 866  896                  *(long double*)FPREG(rd) = info->res.val.q;
 867  897                  break;
 868  898          }
 869  899  }
 870  900  #endif  /* defined(__sparc) */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX