Print this page
*** NO COMMENTS ***
Split |
Close |
Expand all |
Collapse all |
--- old/src/cpu/sparc/vm/globals_sparc.hpp
+++ new/src/cpu/sparc/vm/globals_sparc.hpp
1 1 /*
2 2 * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
3 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 4 *
5 5 * This code is free software; you can redistribute it and/or modify it
6 6 * under the terms of the GNU General Public License version 2 only, as
7 7 * published by the Free Software Foundation.
8 8 *
9 9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 12 * version 2 for more details (a copy is included in the LICENSE file that
13 13 * accompanied this code).
14 14 *
15 15 * You should have received a copy of the GNU General Public License version
16 16 * 2 along with this work; if not, write to the Free Software Foundation,
17 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 18 *
19 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 20 * or visit www.oracle.com if you need additional information or have any
21 21 * questions.
22 22 *
23 23 */
24 24
25 25 #ifndef CPU_SPARC_VM_GLOBALS_SPARC_HPP
26 26 #define CPU_SPARC_VM_GLOBALS_SPARC_HPP
27 27
28 28 #include "utilities/globalDefinitions.hpp"
29 29 #include "utilities/macros.hpp"
30 30
31 31 // Sets the default values for platform dependent flags used by the runtime system.
32 32 // (see globals.hpp)
33 33
34 34 // For sparc we do not do call backs when a thread is in the interpreter, because the
35 35 // interpreter dispatch needs at least two instructions - first to load the dispatch address
36 36 // in a register, and second to jmp. The swapping of the dispatch table may occur _after_
37 37 // the load of the dispatch address and hence the jmp would still go to the location
38 38 // according to the prior table. So, we let the thread continue and let it block by itself.
39 39 define_pd_global(bool, DontYieldALot, true); // yield no more than 100 times per second
40 40 define_pd_global(bool, ShareVtableStubs, false); // improves performance markedly for mtrt and compress
41 41 define_pd_global(bool, NeedsDeoptSuspend, true); // register window machines need this
42 42
43 43 define_pd_global(bool, ImplicitNullChecks, true); // Generate code for implicit null checks
44 44 define_pd_global(bool, TrapBasedNullChecks, false); // Not needed on sparc.
45 45 define_pd_global(bool, UncommonNullCast, true); // Uncommon-trap NULLs passed to check cast
46 46
47 47 define_pd_global(uintx, CodeCacheSegmentSize, 64 TIERED_ONLY(+64)); // Tiered compilation has large code-entry alignment.
48 48 define_pd_global(intx, CodeEntryAlignment, 32);
49 49 // The default setting 16/16 seems to work best.
50 50 // (For _228_jack 16/16 is 2% better than 4/4, 16/4, 32/32, 32/16, or 16/32.)
51 51 define_pd_global(intx, OptoLoopAlignment, 16); // = 4*wordSize
52 52 define_pd_global(intx, InlineFrequencyCount, 50); // we can use more inlining on the SPARC
53 53 define_pd_global(intx, InlineSmallCode, 1500);
54 54
55 55 #define DEFAULT_STACK_YELLOW_PAGES (2)
56 56 #define DEFAULT_STACK_RED_PAGES (1)
57 57 #define DEFAULT_STACK_RESERVED_PAGES (SOLARIS_ONLY(1) NOT_SOLARIS(0))
58 58
59 59 #ifdef _LP64
60 60 // Stack slots are 2X larger in LP64 than in the 32 bit VM.
61 61 define_pd_global(intx, CompilerThreadStackSize, 1024);
62 62 define_pd_global(intx, ThreadStackSize, 1024);
63 63 define_pd_global(intx, VMThreadStackSize, 1024);
64 64 #define DEFAULT_STACK_SHADOW_PAGES (20 DEBUG_ONLY(+2))
65 65 #else
66 66 define_pd_global(intx, CompilerThreadStackSize, 512);
67 67 define_pd_global(intx, ThreadStackSize, 512);
68 68 define_pd_global(intx, VMThreadStackSize, 512);
69 69 #define DEFAULT_STACK_SHADOW_PAGES (6 DEBUG_ONLY(+2))
70 70 #endif // _LP64
71 71
72 72 #define MIN_STACK_YELLOW_PAGES DEFAULT_STACK_YELLOW_PAGES
73 73 #define MIN_STACK_RED_PAGES DEFAULT_STACK_RED_PAGES
74 74 #define MIN_STACK_SHADOW_PAGES DEFAULT_STACK_SHADOW_PAGES
75 75 #define MIN_STACK_RESERVED_PAGES (0)
76 76
77 77 define_pd_global(intx, StackYellowPages, DEFAULT_STACK_YELLOW_PAGES);
78 78 define_pd_global(intx, StackRedPages, DEFAULT_STACK_RED_PAGES);
79 79 define_pd_global(intx, StackShadowPages, DEFAULT_STACK_SHADOW_PAGES);
80 80 define_pd_global(intx, StackReservedPages, DEFAULT_STACK_RESERVED_PAGES);
81 81
82 82 define_pd_global(bool, RewriteBytecodes, true);
83 83 define_pd_global(bool, RewriteFrequentPairs, true);
84 84
85 85 define_pd_global(bool, UseMembar, false);
86 86
87 87 define_pd_global(bool, PreserveFramePointer, false);
88 88
89 89 // GC Ergo Flags
90 90 define_pd_global(size_t, CMSYoungGenPerWorker, 16*M); // default max size of CMS young gen, per GC worker thread
91 91
92 92 define_pd_global(uintx, TypeProfileLevel, 111);
93 93
94 94 define_pd_global(bool, CompactStrings, true);
95 95
96 96 define_pd_global(intx, InitArrayShortSize, 8*BytesPerLong);
97 97
98 98 #define ARCH_FLAGS(develop, \
99 99 product, \
100 100 diagnostic, \
101 101 experimental, \
102 102 notproduct, \
103 103 range, \
104 104 constraint, \
105 105 writeable) \
106 106 \
107 107 product(intx, UseVIS, 99, \
108 108 "Highest supported VIS instructions set on Sparc") \
109 109 range(0, 99) \
110 110 \
111 111 product(bool, UseCBCond, false, \
112 112 "Use compare and branch instruction on SPARC") \
113 113 \
114 114 product(bool, UseBlockZeroing, false, \
115 115 "Use special cpu instructions for block zeroing") \
116 116 \
117 117 product(intx, BlockZeroingLowLimit, 2048, \
118 118 "Minimum size in bytes when block zeroing will be used") \
119 119 range(1, max_jint) \
120 120 \
121 121 product(bool, UseBlockCopy, false, \
122 122 "Use special cpu instructions for block copy") \
123 123 \
124 124 product(intx, BlockCopyLowLimit, 2048, \
125 125 "Minimum size in bytes when block copy will be used") \
126 126 range(1, max_jint) \
127 127 \
128 128 develop(bool, UseV8InstrsOnly, false, \
129 129 "Use SPARC-V8 Compliant instruction subset") \
130 130 \
131 131 product(bool, UseNiagaraInstrs, false, \
132 132 "Use Niagara-efficient instruction subset") \
133 133 \
↓ open down ↓ |
133 lines elided |
↑ open up ↑ |
134 134 develop(bool, UseCASForSwap, false, \
135 135 "Do not use swap instructions, but only CAS (in a loop) on SPARC")\
136 136 \
137 137 product(uintx, ArraycopySrcPrefetchDistance, 0, \
138 138 "Distance to prefetch source array in arraycopy") \
139 139 constraint(ArraycopySrcPrefetchDistanceConstraintFunc, AfterErgo) \
140 140 \
141 141 product(uintx, ArraycopyDstPrefetchDistance, 0, \
142 142 "Distance to prefetch destination array in arraycopy") \
143 143 constraint(ArraycopyDstPrefetchDistanceConstraintFunc, AfterErgo) \
144 -
144 + \
145 + product(bool, UseCountLeadingZerosInstruction, false, \
146 + "Use count leading zeros instruction")
145 147 #endif // CPU_SPARC_VM_GLOBALS_SPARC_HPP
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX