Mercurial > hg > graal-jvmci-8
annotate src/share/vm/runtime/vm_version.hpp @ 7588:f9eb431c3efe
8006005: Fix constant pool index validation and alignment trap for method parameter reflection
Summary: This patch addresses an alignment trap due to the storage format of method parameters data in constMethod. It also adds code to validate constant pool indexes for method parameters data.
Reviewed-by: jrose, dholmes
Contributed-by: eric.mccorkle@oracle.com
author | coleenp |
---|---|
date | Mon, 14 Jan 2013 11:01:39 -0500 |
parents | b9a9ed0f8eeb |
children | 586fa1919a89 |
rev | line source |
---|---|
0 | 1 /* |
6842
b9a9ed0f8eeb
7197424: update copyright year to match last edit in jdk8 hotspot repository
mikael
parents:
6795
diff
changeset
|
2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. |
0 | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
196
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
196
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:
196
diff
changeset
|
21 * questions. |
0 | 22 * |
23 */ | |
24 | |
1972 | 25 #ifndef SHARE_VM_RUNTIME_VM_VERSION_HPP |
26 #define SHARE_VM_RUNTIME_VM_VERSION_HPP | |
27 | |
28 #include "memory/allocation.hpp" | |
29 #include "utilities/ostream.hpp" | |
30 | |
0 | 31 // VM_Version provides information about the VM. |
32 | |
33 class Abstract_VM_Version: AllStatic { | |
34 protected: | |
35 friend class VMStructs; | |
36 static const char* _s_vm_release; | |
37 static const char* _s_internal_vm_info_string; | |
38 // These are set by machine-dependent initializations | |
39 static bool _supports_cx8; | |
6795
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
40 static bool _supports_atomic_getset4; |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
41 static bool _supports_atomic_getset8; |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
42 static bool _supports_atomic_getadd4; |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
43 static bool _supports_atomic_getadd8; |
0 | 44 static unsigned int _logical_processors_per_package; |
45 static int _vm_major_version; | |
46 static int _vm_minor_version; | |
47 static int _vm_build_number; | |
48 static bool _initialized; | |
10
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
49 static int _parallel_worker_threads; |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
50 static bool _parallel_worker_threads_initialized; |
3854 | 51 static int _reserve_for_allocation_prefetch; |
10
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
52 |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
53 static unsigned int nof_parallel_worker_threads(unsigned int num, |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
54 unsigned int dem, |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
55 unsigned int switch_pt); |
0 | 56 public: |
57 static void initialize(); | |
58 | |
59 // Name | |
60 static const char* vm_name(); | |
61 // Vendor | |
62 static const char* vm_vendor(); | |
63 // VM version information string printed by launcher (java -version) | |
64 static const char* vm_info_string(); | |
65 static const char* vm_release(); | |
66 static const char* vm_platform_string(); | |
2199
d8a72fbc4be7
7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents:
1972
diff
changeset
|
67 static const char* vm_build_user(); |
0 | 68 |
69 static int vm_major_version() { assert(_initialized, "not initialized"); return _vm_major_version; } | |
70 static int vm_minor_version() { assert(_initialized, "not initialized"); return _vm_minor_version; } | |
71 static int vm_build_number() { assert(_initialized, "not initialized"); return _vm_build_number; } | |
72 | |
73 // Gets the jvm_version_info.jvm_version defined in jvm.h | |
74 static unsigned int jvm_version(); | |
75 | |
76 // Internal version providing additional build information | |
77 static const char* internal_vm_info_string(); | |
4890
c77d473e71f7
7132779: build-infra merge: Enable ccache to work for most developer builds.
ohrstrom
parents:
3854
diff
changeset
|
78 static const char* jre_release_version(); |
0 | 79 |
80 // does HW support an 8-byte compare-exchange operation? | |
81 static bool supports_cx8() {return _supports_cx8;} | |
6795
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
82 // does HW support atomic get-and-set or atomic get-and-add? Used |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
83 // to guide intrinsification decisions for Unsafe atomic ops |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
84 static bool supports_atomic_getset4() {return _supports_atomic_getset4;} |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
85 static bool supports_atomic_getset8() {return _supports_atomic_getset8;} |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
86 static bool supports_atomic_getadd4() {return _supports_atomic_getadd4;} |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
87 static bool supports_atomic_getadd8() {return _supports_atomic_getadd8;} |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
88 |
0 | 89 static unsigned int logical_processors_per_package() { |
90 return _logical_processors_per_package; | |
91 } | |
92 | |
3854 | 93 // Need a space at the end of TLAB for prefetch instructions |
94 // which may fault when accessing memory outside of heap. | |
95 static int reserve_for_allocation_prefetch() { | |
96 return _reserve_for_allocation_prefetch; | |
97 } | |
98 | |
1681
126ea7725993
6953477: Increase portability and flexibility of building Hotspot
bobv
parents:
1552
diff
changeset
|
99 // ARCH specific policy for the BiasedLocking |
126ea7725993
6953477: Increase portability and flexibility of building Hotspot
bobv
parents:
1552
diff
changeset
|
100 static bool use_biased_locking() { return true; } |
126ea7725993
6953477: Increase portability and flexibility of building Hotspot
bobv
parents:
1552
diff
changeset
|
101 |
0 | 102 // Number of page sizes efficiently supported by the hardware. Most chips now |
103 // support two sizes, thus this default implementation. Processor-specific | |
104 // subclasses should define new versions to hide this one as needed. Note | |
105 // that the O/S may support more sizes, but at most this many are used. | |
106 static uint page_size_count() { return 2; } | |
10
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
107 |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
108 // Returns the number of parallel threads to be used for VM |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
109 // work. If that number has not been calculated, do so and |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
110 // save it. Returns ParallelGCThreads if it is set on the |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
111 // command line. |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
112 static unsigned int parallel_worker_threads(); |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
113 // Calculates and returns the number of parallel threads. May |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
114 // be VM version specific. |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
115 static unsigned int calc_parallel_worker_threads(); |
0 | 116 }; |
1972 | 117 |
118 #endif // SHARE_VM_RUNTIME_VM_VERSION_HPP |