annotate src/cpu/sparc/vm/vm_version_sparc.hpp @ 6812:988bf00cc564

7200261: G1: Liveness counting inconsistencies during marking verification Summary: The clipping code in the routine that sets the bits for a range of cards, in the liveness accounting verification code was incorrect. It set all the bits in the card bitmap from the given starting index which would lead to spurious marking verification failures. Reviewed-by: brutisso, jwilhelm, jmasa
author johnc
date Thu, 27 Sep 2012 15:44:01 -0700
parents 8cb110fd7627
children 3a327d0b8586
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 /*
1914
ae065c367d93 6987135: Performance regression on Intel platform with 32-bits edition between 6u13 and 6u14.
kvn
parents: 1552
diff changeset
2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a61af66fc99e Initial load
duke
parents:
diff changeset
4 *
a61af66fc99e Initial load
duke
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
a61af66fc99e Initial load
duke
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
a61af66fc99e Initial load
duke
parents:
diff changeset
7 * published by the Free Software Foundation.
a61af66fc99e Initial load
duke
parents:
diff changeset
8 *
a61af66fc99e Initial load
duke
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
a61af66fc99e Initial load
duke
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a61af66fc99e Initial load
duke
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a61af66fc99e Initial load
duke
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
a61af66fc99e Initial load
duke
parents:
diff changeset
13 * accompanied this code).
a61af66fc99e Initial load
duke
parents:
diff changeset
14 *
a61af66fc99e Initial load
duke
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
a61af66fc99e Initial load
duke
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
a61af66fc99e Initial load
duke
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a61af66fc99e Initial load
duke
parents:
diff changeset
18 *
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 643
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 643
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 643
diff changeset
21 * questions.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
22 *
a61af66fc99e Initial load
duke
parents:
diff changeset
23 */
a61af66fc99e Initial load
duke
parents:
diff changeset
24
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1914
diff changeset
25 #ifndef CPU_SPARC_VM_VM_VERSION_SPARC_HPP
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1914
diff changeset
26 #define CPU_SPARC_VM_VM_VERSION_SPARC_HPP
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1914
diff changeset
27
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1914
diff changeset
28 #include "runtime/globals_extension.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1914
diff changeset
29 #include "runtime/vm_version.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1914
diff changeset
30
0
a61af66fc99e Initial load
duke
parents:
diff changeset
31 class VM_Version: public Abstract_VM_Version {
a61af66fc99e Initial load
duke
parents:
diff changeset
32 protected:
a61af66fc99e Initial load
duke
parents:
diff changeset
33 enum Feature_Flag {
3839
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
34 v8_instructions = 0,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
35 hardware_mul32 = 1,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
36 hardware_div32 = 2,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
37 hardware_fsmuld = 3,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
38 hardware_popc = 4,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
39 v9_instructions = 5,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
40 vis1_instructions = 6,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
41 vis2_instructions = 7,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
42 sun4v_instructions = 8,
1914
ae065c367d93 6987135: Performance regression on Intel platform with 32-bits edition between 6u13 and 6u14.
kvn
parents: 1552
diff changeset
43 blk_init_instructions = 9,
3839
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
44 fmaf_instructions = 10,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
45 fmau_instructions = 11,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
46 vis3_instructions = 12,
6269
8cb110fd7627 7188227: VM should recognize M-series SPARC
kvn
parents: 3892
diff changeset
47 cbcond_instructions = 13,
8cb110fd7627 7188227: VM should recognize M-series SPARC
kvn
parents: 3892
diff changeset
48 sparc64_family = 14,
8cb110fd7627 7188227: VM should recognize M-series SPARC
kvn
parents: 3892
diff changeset
49 M_family = 15,
8cb110fd7627 7188227: VM should recognize M-series SPARC
kvn
parents: 3892
diff changeset
50 T_family = 16,
8cb110fd7627 7188227: VM should recognize M-series SPARC
kvn
parents: 3892
diff changeset
51 T1_model = 17
0
a61af66fc99e Initial load
duke
parents:
diff changeset
52 };
a61af66fc99e Initial load
duke
parents:
diff changeset
53
a61af66fc99e Initial load
duke
parents:
diff changeset
54 enum Feature_Flag_Set {
641
6af0a709d52b 6812587: Use auxv to determine SPARC hardware features on Solaris
twisti
parents: 196
diff changeset
55 unknown_m = 0,
6af0a709d52b 6812587: Use auxv to determine SPARC hardware features on Solaris
twisti
parents: 196
diff changeset
56 all_features_m = -1,
0
a61af66fc99e Initial load
duke
parents:
diff changeset
57
3839
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
58 v8_instructions_m = 1 << v8_instructions,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
59 hardware_mul32_m = 1 << hardware_mul32,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
60 hardware_div32_m = 1 << hardware_div32,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
61 hardware_fsmuld_m = 1 << hardware_fsmuld,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
62 hardware_popc_m = 1 << hardware_popc,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
63 v9_instructions_m = 1 << v9_instructions,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
64 vis1_instructions_m = 1 << vis1_instructions,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
65 vis2_instructions_m = 1 << vis2_instructions,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
66 sun4v_m = 1 << sun4v_instructions,
1914
ae065c367d93 6987135: Performance regression on Intel platform with 32-bits edition between 6u13 and 6u14.
kvn
parents: 1552
diff changeset
67 blk_init_instructions_m = 1 << blk_init_instructions,
3839
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
68 fmaf_instructions_m = 1 << fmaf_instructions,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
69 fmau_instructions_m = 1 << fmau_instructions,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
70 vis3_instructions_m = 1 << vis3_instructions,
6269
8cb110fd7627 7188227: VM should recognize M-series SPARC
kvn
parents: 3892
diff changeset
71 cbcond_instructions_m = 1 << cbcond_instructions,
3839
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
72 sparc64_family_m = 1 << sparc64_family,
6269
8cb110fd7627 7188227: VM should recognize M-series SPARC
kvn
parents: 3892
diff changeset
73 M_family_m = 1 << M_family,
3839
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
74 T_family_m = 1 << T_family,
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
75 T1_model_m = 1 << T1_model,
0
a61af66fc99e Initial load
duke
parents:
diff changeset
76
641
6af0a709d52b 6812587: Use auxv to determine SPARC hardware features on Solaris
twisti
parents: 196
diff changeset
77 generic_v8_m = v8_instructions_m | hardware_mul32_m | hardware_div32_m | hardware_fsmuld_m,
6af0a709d52b 6812587: Use auxv to determine SPARC hardware features on Solaris
twisti
parents: 196
diff changeset
78 generic_v9_m = generic_v8_m | v9_instructions_m,
6af0a709d52b 6812587: Use auxv to determine SPARC hardware features on Solaris
twisti
parents: 196
diff changeset
79 ultra3_m = generic_v9_m | vis1_instructions_m | vis2_instructions_m,
0
a61af66fc99e Initial load
duke
parents:
diff changeset
80
a61af66fc99e Initial load
duke
parents:
diff changeset
81 // Temporary until we have something more accurate
641
6af0a709d52b 6812587: Use auxv to determine SPARC hardware features on Solaris
twisti
parents: 196
diff changeset
82 niagara1_unique_m = sun4v_m,
6af0a709d52b 6812587: Use auxv to determine SPARC hardware features on Solaris
twisti
parents: 196
diff changeset
83 niagara1_m = generic_v9_m | niagara1_unique_m
0
a61af66fc99e Initial load
duke
parents:
diff changeset
84 };
a61af66fc99e Initial load
duke
parents:
diff changeset
85
a61af66fc99e Initial load
duke
parents:
diff changeset
86 static int _features;
a61af66fc99e Initial load
duke
parents:
diff changeset
87 static const char* _features_str;
a61af66fc99e Initial load
duke
parents:
diff changeset
88
a61af66fc99e Initial load
duke
parents:
diff changeset
89 static void print_features();
a61af66fc99e Initial load
duke
parents:
diff changeset
90 static int determine_features();
a61af66fc99e Initial load
duke
parents:
diff changeset
91 static int platform_features(int features);
a61af66fc99e Initial load
duke
parents:
diff changeset
92
2080
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
93 // Returns true if the platform is in the niagara line (T series)
6269
8cb110fd7627 7188227: VM should recognize M-series SPARC
kvn
parents: 3892
diff changeset
94 static bool is_M_family(int features) { return (features & M_family_m) != 0; }
2080
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
95 static bool is_T_family(int features) { return (features & T_family_m) != 0; }
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
96 static bool is_niagara() { return is_T_family(_features); }
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
97 DEBUG_ONLY( static bool is_niagara(int features) { return (features & sun4v_m) != 0; } )
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
98
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
99 // Returns true if it is niagara1 (T1).
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
100 static bool is_T1_model(int features) { return is_T_family(features) && ((features & T1_model_m) != 0); }
0
a61af66fc99e Initial load
duke
parents:
diff changeset
101
10
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
102 static int maximum_niagara1_processor_count() { return 32; }
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
103
0
a61af66fc99e Initial load
duke
parents:
diff changeset
104 public:
a61af66fc99e Initial load
duke
parents:
diff changeset
105 // Initialization
a61af66fc99e Initial load
duke
parents:
diff changeset
106 static void initialize();
a61af66fc99e Initial load
duke
parents:
diff changeset
107
a61af66fc99e Initial load
duke
parents:
diff changeset
108 // Instruction support
a61af66fc99e Initial load
duke
parents:
diff changeset
109 static bool has_v8() { return (_features & v8_instructions_m) != 0; }
a61af66fc99e Initial load
duke
parents:
diff changeset
110 static bool has_v9() { return (_features & v9_instructions_m) != 0; }
641
6af0a709d52b 6812587: Use auxv to determine SPARC hardware features on Solaris
twisti
parents: 196
diff changeset
111 static bool has_hardware_mul32() { return (_features & hardware_mul32_m) != 0; }
6af0a709d52b 6812587: Use auxv to determine SPARC hardware features on Solaris
twisti
parents: 196
diff changeset
112 static bool has_hardware_div32() { return (_features & hardware_div32_m) != 0; }
0
a61af66fc99e Initial load
duke
parents:
diff changeset
113 static bool has_hardware_fsmuld() { return (_features & hardware_fsmuld_m) != 0; }
643
c771b7f43bbf 6378821: bitCount() should use POPC on SPARC processors and AMD+10h
twisti
parents: 641
diff changeset
114 static bool has_hardware_popc() { return (_features & hardware_popc_m) != 0; }
0
a61af66fc99e Initial load
duke
parents:
diff changeset
115 static bool has_vis1() { return (_features & vis1_instructions_m) != 0; }
a61af66fc99e Initial load
duke
parents:
diff changeset
116 static bool has_vis2() { return (_features & vis2_instructions_m) != 0; }
2080
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
117 static bool has_vis3() { return (_features & vis3_instructions_m) != 0; }
1914
ae065c367d93 6987135: Performance regression on Intel platform with 32-bits edition between 6u13 and 6u14.
kvn
parents: 1552
diff changeset
118 static bool has_blk_init() { return (_features & blk_init_instructions_m) != 0; }
3839
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
119 static bool has_cbcond() { return (_features & cbcond_instructions_m) != 0; }
0
a61af66fc99e Initial load
duke
parents:
diff changeset
120
a61af66fc99e Initial load
duke
parents:
diff changeset
121 static bool supports_compare_and_exchange()
a61af66fc99e Initial load
duke
parents:
diff changeset
122 { return has_v9(); }
a61af66fc99e Initial load
duke
parents:
diff changeset
123
2080
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
124 // Returns true if the platform is in the niagara line (T series)
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
125 // and newer than the niagara1.
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
126 static bool is_niagara_plus() { return is_T_family(_features) && !is_T1_model(_features); }
3854
1af104d6cf99 7079329: Adjust allocation prefetching for T4
kvn
parents: 3839
diff changeset
127 static bool is_T4() { return is_T_family(_features) && has_cbcond(); }
3839
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
128
2080
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
129 // Fujitsu SPARC64
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
130 static bool is_sparc64() { return (_features & sparc64_family_m) != 0; }
0
a61af66fc99e Initial load
duke
parents:
diff changeset
131
3839
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
132 static bool is_sun4v() { return (_features & sun4v_m) != 0; }
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
133 static bool is_ultra3() { return (_features & ultra3_m) == ultra3_m && !is_sun4v() && !is_sparc64(); }
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
134
2080
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
135 static bool has_fast_fxtof() { return is_niagara() || is_sparc64() || has_v9() && !is_ultra3(); }
c04052fd6ae1 7006505: Use kstat info to identify SPARC processor
kvn
parents: 2008
diff changeset
136 static bool has_fast_idiv() { return is_niagara_plus() || is_sparc64(); }
3854
1af104d6cf99 7079329: Adjust allocation prefetching for T4
kvn
parents: 3839
diff changeset
137
3839
3d42f82cd811 7063628: Use cbcond on T4
kvn
parents: 2080
diff changeset
138 // T4 and newer Sparc have fast RDPC instruction.
3854
1af104d6cf99 7079329: Adjust allocation prefetching for T4
kvn
parents: 3839
diff changeset
139 static bool has_fast_rdpc() { return is_T4(); }
1af104d6cf99 7079329: Adjust allocation prefetching for T4
kvn
parents: 3839
diff changeset
140
3892
baf763f388e6 7059037: Use BIS for zeroing on T4
kvn
parents: 3854
diff changeset
141 // On T4 and newer Sparc BIS to the beginning of cache line always zeros it.
baf763f388e6 7059037: Use BIS for zeroing on T4
kvn
parents: 3854
diff changeset
142 static bool has_block_zeroing() { return has_blk_init() && is_T4(); }
0
a61af66fc99e Initial load
duke
parents:
diff changeset
143
a61af66fc99e Initial load
duke
parents:
diff changeset
144 static const char* cpu_features() { return _features_str; }
a61af66fc99e Initial load
duke
parents:
diff changeset
145
3854
1af104d6cf99 7079329: Adjust allocation prefetching for T4
kvn
parents: 3839
diff changeset
146 static intx prefetch_data_size() {
1af104d6cf99 7079329: Adjust allocation prefetching for T4
kvn
parents: 3839
diff changeset
147 return is_T4() ? 32 : 64; // default prefetch block size on sparc
0
a61af66fc99e Initial load
duke
parents:
diff changeset
148 }
a61af66fc99e Initial load
duke
parents:
diff changeset
149
a61af66fc99e Initial load
duke
parents:
diff changeset
150 // Prefetch
a61af66fc99e Initial load
duke
parents:
diff changeset
151 static intx prefetch_copy_interval_in_bytes() {
a61af66fc99e Initial load
duke
parents:
diff changeset
152 intx interval = PrefetchCopyIntervalInBytes;
a61af66fc99e Initial load
duke
parents:
diff changeset
153 return interval >= 0 ? interval : (has_v9() ? 512 : 0);
a61af66fc99e Initial load
duke
parents:
diff changeset
154 }
a61af66fc99e Initial load
duke
parents:
diff changeset
155 static intx prefetch_scan_interval_in_bytes() {
a61af66fc99e Initial load
duke
parents:
diff changeset
156 intx interval = PrefetchScanIntervalInBytes;
a61af66fc99e Initial load
duke
parents:
diff changeset
157 return interval >= 0 ? interval : (has_v9() ? 512 : 0);
a61af66fc99e Initial load
duke
parents:
diff changeset
158 }
a61af66fc99e Initial load
duke
parents:
diff changeset
159 static intx prefetch_fields_ahead() {
a61af66fc99e Initial load
duke
parents:
diff changeset
160 intx count = PrefetchFieldsAhead;
a61af66fc99e Initial load
duke
parents:
diff changeset
161 return count >= 0 ? count : (is_ultra3() ? 1 : 0);
a61af66fc99e Initial load
duke
parents:
diff changeset
162 }
a61af66fc99e Initial load
duke
parents:
diff changeset
163
a61af66fc99e Initial load
duke
parents:
diff changeset
164 static intx allocate_prefetch_distance() {
a61af66fc99e Initial load
duke
parents:
diff changeset
165 // This method should be called before allocate_prefetch_style().
a61af66fc99e Initial load
duke
parents:
diff changeset
166 intx count = AllocatePrefetchDistance;
a61af66fc99e Initial load
duke
parents:
diff changeset
167 if (count < 0) { // default is not defined ?
a61af66fc99e Initial load
duke
parents:
diff changeset
168 count = 512;
a61af66fc99e Initial load
duke
parents:
diff changeset
169 }
a61af66fc99e Initial load
duke
parents:
diff changeset
170 return count;
a61af66fc99e Initial load
duke
parents:
diff changeset
171 }
a61af66fc99e Initial load
duke
parents:
diff changeset
172 static intx allocate_prefetch_style() {
a61af66fc99e Initial load
duke
parents:
diff changeset
173 assert(AllocatePrefetchStyle >= 0, "AllocatePrefetchStyle should be positive");
a61af66fc99e Initial load
duke
parents:
diff changeset
174 // Return 0 if AllocatePrefetchDistance was not defined.
a61af66fc99e Initial load
duke
parents:
diff changeset
175 return AllocatePrefetchDistance > 0 ? AllocatePrefetchStyle : 0;
a61af66fc99e Initial load
duke
parents:
diff changeset
176 }
a61af66fc99e Initial load
duke
parents:
diff changeset
177
a61af66fc99e Initial load
duke
parents:
diff changeset
178 // Legacy
a61af66fc99e Initial load
duke
parents:
diff changeset
179 static bool v8_instructions_work() { return has_v8() && !has_v9(); }
a61af66fc99e Initial load
duke
parents:
diff changeset
180 static bool v9_instructions_work() { return has_v9(); }
a61af66fc99e Initial load
duke
parents:
diff changeset
181
a61af66fc99e Initial load
duke
parents:
diff changeset
182 // Assembler testing
a61af66fc99e Initial load
duke
parents:
diff changeset
183 static void allow_all();
a61af66fc99e Initial load
duke
parents:
diff changeset
184 static void revert();
a61af66fc99e Initial load
duke
parents:
diff changeset
185
a61af66fc99e Initial load
duke
parents:
diff changeset
186 // Override the Abstract_VM_Version implementation.
a61af66fc99e Initial load
duke
parents:
diff changeset
187 static uint page_size_count() { return is_sun4v() ? 4 : 2; }
10
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
188
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
189 // Calculates the number of parallel threads
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
190 static unsigned int calc_parallel_worker_threads();
0
a61af66fc99e Initial load
duke
parents:
diff changeset
191 };
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1914
diff changeset
192
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1914
diff changeset
193 #endif // CPU_SPARC_VM_VM_VERSION_SPARC_HPP