src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7063628 Sdiff src/os_cpu/solaris_sparc/vm

src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp

Print this page




  97 #ifndef AV_SPARC_ASI_BLK_INIT
  98 #define AV_SPARC_ASI_BLK_INIT 0x0080  /* ASI_BLK_INIT_xxx ASI */
  99 #endif
 100     if (av & AV_SPARC_ASI_BLK_INIT) features |= blk_init_instructions_m;
 101 
 102 #ifndef AV_SPARC_FMAF
 103 #define AV_SPARC_FMAF 0x0100        /* Fused Multiply-Add */
 104 #endif
 105     if (av & AV_SPARC_FMAF)         features |= fmaf_instructions_m;
 106 
 107 #ifndef AV_SPARC_FMAU
 108 #define    AV_SPARC_FMAU    0x0200  /* Unfused Multiply-Add */
 109 #endif
 110     if (av & AV_SPARC_FMAU)         features |= fmau_instructions_m;
 111 
 112 #ifndef AV_SPARC_VIS3
 113 #define    AV_SPARC_VIS3    0x0400  /* VIS3 instruction set extensions */
 114 #endif
 115     if (av & AV_SPARC_VIS3)         features |= vis3_instructions_m;
 116 





 117   } else {
 118     // getisax(2) failed, use the old legacy code.
 119 #ifndef PRODUCT
 120     if (PrintMiscellaneous && Verbose)
 121       tty->print_cr("getisax(2) is not supported.");
 122 #endif
 123 
 124     char   tmp;
 125     size_t bufsize = sysinfo(SI_ISALIST, &tmp, 1);
 126     char*  buf     = (char*) malloc(bufsize);
 127 
 128     if (buf != NULL) {
 129       if (sysinfo(SI_ISALIST, buf, bufsize) == bufsize) {
 130         // Figure out what kind of sparc we have
 131         char *sparc_string = strstr(buf, "sparc");
 132         if (sparc_string != NULL) {              features |= v8_instructions_m;
 133           if (sparc_string[5] == 'v') {
 134             if (sparc_string[6] == '8') {
 135               if (sparc_string[7] == '-') {      features |= hardware_mul32_m;
 136                                                  features |= hardware_div32_m;




  97 #ifndef AV_SPARC_ASI_BLK_INIT
  98 #define AV_SPARC_ASI_BLK_INIT 0x0080  /* ASI_BLK_INIT_xxx ASI */
  99 #endif
 100     if (av & AV_SPARC_ASI_BLK_INIT) features |= blk_init_instructions_m;
 101 
 102 #ifndef AV_SPARC_FMAF
 103 #define AV_SPARC_FMAF 0x0100        /* Fused Multiply-Add */
 104 #endif
 105     if (av & AV_SPARC_FMAF)         features |= fmaf_instructions_m;
 106 
 107 #ifndef AV_SPARC_FMAU
 108 #define    AV_SPARC_FMAU    0x0200  /* Unfused Multiply-Add */
 109 #endif
 110     if (av & AV_SPARC_FMAU)         features |= fmau_instructions_m;
 111 
 112 #ifndef AV_SPARC_VIS3
 113 #define    AV_SPARC_VIS3    0x0400  /* VIS3 instruction set extensions */
 114 #endif
 115     if (av & AV_SPARC_VIS3)         features |= vis3_instructions_m;
 116 
 117 #ifndef AV_SPARC_CBCOND
 118 #define AV_SPARC_CBCOND 0x10000000  /* compare and branch instrs supported */
 119 #endif
 120     if (av & AV_SPARC_CBCOND)       features |= cbcond_instructions_m;
 121 
 122   } else {
 123     // getisax(2) failed, use the old legacy code.
 124 #ifndef PRODUCT
 125     if (PrintMiscellaneous && Verbose)
 126       tty->print_cr("getisax(2) is not supported.");
 127 #endif
 128 
 129     char   tmp;
 130     size_t bufsize = sysinfo(SI_ISALIST, &tmp, 1);
 131     char*  buf     = (char*) malloc(bufsize);
 132 
 133     if (buf != NULL) {
 134       if (sysinfo(SI_ISALIST, buf, bufsize) == bufsize) {
 135         // Figure out what kind of sparc we have
 136         char *sparc_string = strstr(buf, "sparc");
 137         if (sparc_string != NULL) {              features |= v8_instructions_m;
 138           if (sparc_string[5] == 'v') {
 139             if (sparc_string[6] == '8') {
 140               if (sparc_string[7] == '-') {      features |= hardware_mul32_m;
 141                                                  features |= hardware_div32_m;


src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File