Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/hotspot/src/cpu/ppc/vm/globals_ppc.hpp
32285 views
1
/*
2
* Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
3
* Copyright 2012, 2018 SAP AG. All rights reserved.
4
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5
*
6
* This code is free software; you can redistribute it and/or modify it
7
* under the terms of the GNU General Public License version 2 only, as
8
* published by the Free Software Foundation.
9
*
10
* This code is distributed in the hope that it will be useful, but WITHOUT
11
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13
* version 2 for more details (a copy is included in the LICENSE file that
14
* accompanied this code).
15
*
16
* You should have received a copy of the GNU General Public License version
17
* 2 along with this work; if not, write to the Free Software Foundation,
18
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19
*
20
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21
* or visit www.oracle.com if you need additional information or have any
22
* questions.
23
*
24
*/
25
26
#ifndef CPU_PPC_VM_GLOBALS_PPC_HPP
27
#define CPU_PPC_VM_GLOBALS_PPC_HPP
28
29
#include "utilities/globalDefinitions.hpp"
30
#include "utilities/macros.hpp"
31
32
// Sets the default values for platform dependent flags used by the runtime system.
33
// (see globals.hpp)
34
35
define_pd_global(bool, ConvertSleepToYield, true);
36
define_pd_global(bool, NeedsDeoptSuspend, false); // Only register window machines need this.
37
38
define_pd_global(bool, ImplicitNullChecks, true); // Generate code for implicit null checks.
39
define_pd_global(bool, TrapBasedNullChecks, true);
40
define_pd_global(bool, UncommonNullCast, true); // Uncommon-trap NULLs passed to check cast.
41
42
// Use large code-entry alignment.
43
define_pd_global(intx, CodeEntryAlignment, 128);
44
define_pd_global(intx, OptoLoopAlignment, 16);
45
define_pd_global(intx, InlineFrequencyCount, 100);
46
define_pd_global(intx, InlineSmallCode, 1500);
47
48
define_pd_global(intx, PreInflateSpin, 10);
49
50
// Flags for template interpreter.
51
define_pd_global(bool, RewriteBytecodes, true);
52
define_pd_global(bool, RewriteFrequentPairs, true);
53
54
define_pd_global(bool, UseMembar, false);
55
56
define_pd_global(bool, PreserveFramePointer, false);
57
58
// GC Ergo Flags
59
define_pd_global(uintx, CMSYoungGenPerWorker, 16*M); // Default max size of CMS young gen, per GC worker thread.
60
61
define_pd_global(uintx, TypeProfileLevel, 0);
62
63
// Platform dependent flag handling: flags only defined on this platform.
64
#define ARCH_FLAGS(develop, product, diagnostic, experimental, notproduct) \
65
\
66
/* Load poll address from thread. This is used to implement per-thread */ \
67
/* safepoints on platforms != IA64. */ \
68
product(bool, LoadPollAddressFromThread, false, \
69
"Load polling page address from thread object (required for " \
70
"per-thread safepoints on platforms != IA64)") \
71
\
72
product(uintx, PowerArchitecturePPC64, 0, \
73
"CPU Version: x for PowerX. Currently recognizes Power5 to " \
74
"Power7. Default is 0. CPUs newer than Power7 will be " \
75
"recognized as Power7.") \
76
\
77
/* Reoptimize code-sequences of calls at runtime, e.g. replace an */ \
78
/* indirect call by a direct call. */ \
79
product(bool, ReoptimizeCallSequences, true, \
80
"Reoptimize code-sequences of calls at runtime.") \
81
\
82
/* Power 8: Configure Data Stream Control Register. */ \
83
product(uint64_t,DSCR_PPC64, (uintx)-1, \
84
"Power8 or later: Specify encoded value for Data Stream Control " \
85
"Register") \
86
product(uint64_t,DSCR_DPFD_PPC64, 8, \
87
"Power8 or later: DPFD (default prefetch depth) value of the " \
88
"Data Stream Control Register." \
89
" 0: hardware default, 1: none, 2-7: min-max, 8: don't touch") \
90
product(uint64_t,DSCR_URG_PPC64, 8, \
91
"Power8 or later: URG (depth attainment urgency) value of the " \
92
"Data Stream Control Register." \
93
" 0: hardware default, 1: none, 2-7: min-max, 8: don't touch") \
94
\
95
product(bool, UseLoadInstructionsForStackBangingPPC64, false, \
96
"Use load instructions for stack banging.") \
97
\
98
/* special instructions */ \
99
\
100
product(bool, UseCountLeadingZerosInstructionsPPC64, true, \
101
"Use count leading zeros instructions.") \
102
\
103
product(bool, UseExtendedLoadAndReserveInstructionsPPC64, false, \
104
"Use extended versions of load-and-reserve instructions.") \
105
\
106
product(bool, UseRotateAndMaskInstructionsPPC64, true, \
107
"Use rotate and mask instructions.") \
108
\
109
product(bool, UseStaticBranchPredictionInCompareAndSwapPPC64, true, \
110
"Use static branch prediction hints in CAS operations.") \
111
product(bool, UseStaticBranchPredictionForUncommonPathsPPC64, false, \
112
"Use static branch prediction hints for uncommon paths.") \
113
\
114
product(bool, UsePower6SchedulerPPC64, false, \
115
"Use Power6 Scheduler.") \
116
\
117
product(bool, InsertEndGroupPPC64, false, \
118
"Insert EndGroup instructions to optimize for Power6.") \
119
\
120
/* Trap based checks. */ \
121
/* Trap based checks use the ppc trap instructions to check certain */ \
122
/* conditions. This instruction raises a SIGTRAP caught by the */ \
123
/* exception handler of the VM. */ \
124
product(bool, UseSIGTRAP, true, \
125
"Allow trap instructions that make use of SIGTRAP. Use this to " \
126
"switch off all optimizations requiring SIGTRAP.") \
127
product(bool, TrapBasedICMissChecks, true, \
128
"Raise and handle SIGTRAP if inline cache miss detected.") \
129
product(bool, TrapBasedNotEntrantChecks, true, \
130
"Raise and handle SIGTRAP if calling not entrant or zombie" \
131
" method.") \
132
product(bool, TraceTraps, false, "Trace all traps the signal handler" \
133
"handles.") \
134
\
135
product(bool, ZapMemory, false, "Write 0x0101... to empty memory." \
136
" Use this to ease debugging.") \
137
138
139
#endif // CPU_PPC_VM_GLOBALS_PPC_HPP
140
141