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_AARCH64_VM_VM_VERSION_AARCH64_HPP
27 #define CPU_AARCH64_VM_VM_VERSION_AARCH64_HPP
28
29 #include "runtime/globals_extension.hpp"
30 #include "runtime/vm_version.hpp"
31
32 class VM_Version : public Abstract_VM_Version {
33 public:
34 protected:
35 static int _cpu;
36 static int _model;
37 static int _model2;
38 static int _variant;
39 static int _revision;
40 static int _stepping;
41 static int _cpuFeatures; // features returned by the "cpuid" instruction
42 // 0 if this instruction is not available
43 static const char* _features_str;
44
45 static void get_processor_features();
46
47 public:
48 // Initialization
49 static void initialize();
50
51 // Asserts
52 static void assert_is_initialized() {
53 }
54
55 enum {
56 CPU_ARM = 'A',
57 CPU_BROADCOM = 'B',
58 CPU_CAVIUM = 'C',
59 CPU_DEC = 'D',
60 CPU_INFINEON = 'I',
61 CPU_MOTOROLA = 'M',
|
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_AARCH64_VM_VM_VERSION_AARCH64_HPP
27 #define CPU_AARCH64_VM_VM_VERSION_AARCH64_HPP
28
29 #include "runtime/globals_extension.hpp"
30 #include "runtime/vm_version.hpp"
31
32 class VM_Version : public Abstract_VM_Version {
33 friend class VMStructs;
34
35 public:
36 protected:
37 static int _cpu;
38 static int _model;
39 static int _model2;
40 static int _variant;
41 static int _revision;
42 static int _stepping;
43 static uint64_t _cpuFeatures; // features returned by the "cpuid" instruction
44 // 0 if this instruction is not available
45 static const char* _features_str;
46
47 static void get_processor_features();
48
49 public:
50 // Initialization
51 static void initialize();
52
53 // Asserts
54 static void assert_is_initialized() {
55 }
56
57 enum {
58 CPU_ARM = 'A',
59 CPU_BROADCOM = 'B',
60 CPU_CAVIUM = 'C',
61 CPU_DEC = 'D',
62 CPU_INFINEON = 'I',
63 CPU_MOTOROLA = 'M',
|