< prev index next >

src/hotspot/cpu/ppc/vm_version_ppc.cpp

Print this page
rev 59326 : 8244949: [PPC64] Reengineer assembler stop function
Reviewed-by:


  85   bool PowerArchitecturePPC64_ok = false;
  86   switch (PowerArchitecturePPC64) {
  87     case 9: if (!VM_Version::has_darn()   ) break;
  88     case 8: if (!VM_Version::has_lqarx()  ) break;
  89     case 7: if (!VM_Version::has_popcntw()) break;
  90     case 6: if (!VM_Version::has_cmpb()   ) break;
  91     case 5: if (!VM_Version::has_popcntb()) break;
  92     case 0: PowerArchitecturePPC64_ok = true; break;
  93     default: break;
  94   }
  95   guarantee(PowerArchitecturePPC64_ok, "PowerArchitecturePPC64 cannot be set to "
  96             UINTX_FORMAT " on this machine", PowerArchitecturePPC64);
  97 
  98   // Power 8: Configure Data Stream Control Register.
  99   if (PowerArchitecturePPC64 >= 8 && has_mfdscr()) {
 100     config_dscr();
 101   }
 102 
 103   if (!UseSIGTRAP) {
 104     MSG(TrapBasedICMissChecks);
 105     MSG(TrapBasedNotEntrantChecks);
 106     MSG(TrapBasedNullChecks);
 107     FLAG_SET_ERGO(TrapBasedNotEntrantChecks, false);
 108     FLAG_SET_ERGO(TrapBasedNullChecks,       false);
 109     FLAG_SET_ERGO(TrapBasedICMissChecks,     false);
 110   }
 111 
 112 #ifdef COMPILER2
 113   if (!UseSIGTRAP) {
 114     MSG(TrapBasedRangeChecks);
 115     FLAG_SET_ERGO(TrapBasedRangeChecks, false);
 116   }
 117 
 118   // On Power6 test for section size.
 119   if (PowerArchitecturePPC64 == 6) {
 120     determine_section_size();
 121   // TODO: PPC port } else {
 122   // TODO: PPC port PdScheduling::power6SectorSize = 0x20;
 123   }
 124 
 125   if (PowerArchitecturePPC64 >= 8) {
 126     if (FLAG_IS_DEFAULT(SuperwordUseVSX)) {
 127       FLAG_SET_ERGO(SuperwordUseVSX, true);




  85   bool PowerArchitecturePPC64_ok = false;
  86   switch (PowerArchitecturePPC64) {
  87     case 9: if (!VM_Version::has_darn()   ) break;
  88     case 8: if (!VM_Version::has_lqarx()  ) break;
  89     case 7: if (!VM_Version::has_popcntw()) break;
  90     case 6: if (!VM_Version::has_cmpb()   ) break;
  91     case 5: if (!VM_Version::has_popcntb()) break;
  92     case 0: PowerArchitecturePPC64_ok = true; break;
  93     default: break;
  94   }
  95   guarantee(PowerArchitecturePPC64_ok, "PowerArchitecturePPC64 cannot be set to "
  96             UINTX_FORMAT " on this machine", PowerArchitecturePPC64);
  97 
  98   // Power 8: Configure Data Stream Control Register.
  99   if (PowerArchitecturePPC64 >= 8 && has_mfdscr()) {
 100     config_dscr();
 101   }
 102 
 103   if (!UseSIGTRAP) {
 104     MSG(TrapBasedICMissChecks);

 105     MSG(TrapBasedNullChecks);

 106     FLAG_SET_ERGO(TrapBasedNullChecks,       false);
 107     FLAG_SET_ERGO(TrapBasedICMissChecks,     false);
 108   }
 109 
 110 #ifdef COMPILER2
 111   if (!UseSIGTRAP) {
 112     MSG(TrapBasedRangeChecks);
 113     FLAG_SET_ERGO(TrapBasedRangeChecks, false);
 114   }
 115 
 116   // On Power6 test for section size.
 117   if (PowerArchitecturePPC64 == 6) {
 118     determine_section_size();
 119   // TODO: PPC port } else {
 120   // TODO: PPC port PdScheduling::power6SectorSize = 0x20;
 121   }
 122 
 123   if (PowerArchitecturePPC64 >= 8) {
 124     if (FLAG_IS_DEFAULT(SuperwordUseVSX)) {
 125       FLAG_SET_ERGO(SuperwordUseVSX, true);


< prev index next >