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);
|