comparison src/share/vm/runtime/init.cpp @ 4749:7ab5f6318694

7125934: Add a fast unordered timestamp capability to Hotspot on x86/x64 Summary: Add rdtsc detection and inline generation. Reviewed-by: kamg, dholmes Contributed-by: karen.kinnear@oracle.com
author phh
date Sun, 01 Jan 2012 11:17:59 -0500
parents 8d0b933dda2d
children 4f25538b54c9
comparison
equal deleted inserted replaced
4732:4ec93d767458 4749:7ab5f6318694
1 /* 1 /*
2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 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 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
45 void management_init(); 45 void management_init();
46 void bytecodes_init(); 46 void bytecodes_init();
47 void classLoader_init(); 47 void classLoader_init();
48 void codeCache_init(); 48 void codeCache_init();
49 void VM_Version_init(); 49 void VM_Version_init();
50 void os_init_globals(); // depends on VM_Version_init, before universe_init
50 void stubRoutines_init1(); 51 void stubRoutines_init1();
51 jint universe_init(); // dependent on codeCache_init and stubRoutines_init 52 jint universe_init(); // depends on codeCache_init and stubRoutines_init
52 void interpreter_init(); // before any methods loaded 53 void interpreter_init(); // before any methods loaded
53 void invocationCounter_init(); // before any methods loaded 54 void invocationCounter_init(); // before any methods loaded
54 void marksweep_init(); 55 void marksweep_init();
55 void accessFlags_init(); 56 void accessFlags_init();
56 void templateTable_init(); 57 void templateTable_init();
57 void InterfaceSupport_init(); 58 void InterfaceSupport_init();
58 void universe2_init(); // dependent on codeCache_init and stubRoutines_init 59 void universe2_init(); // dependent on codeCache_init and stubRoutines_init, loads primordial classes
59 void referenceProcessor_init(); 60 void referenceProcessor_init();
60 void jni_handles_init(); 61 void jni_handles_init();
61 void vmStructs_init(); 62 void vmStructs_init();
62 63
63 void vtableStubs_init(); 64 void vtableStubs_init();
92 management_init(); 93 management_init();
93 bytecodes_init(); 94 bytecodes_init();
94 classLoader_init(); 95 classLoader_init();
95 codeCache_init(); 96 codeCache_init();
96 VM_Version_init(); 97 VM_Version_init();
98 os_init_globals();
97 stubRoutines_init1(); 99 stubRoutines_init1();
98 jint status = universe_init(); // dependent on codeCache_init and stubRoutines_init 100 jint status = universe_init(); // dependent on codeCache_init and
101 // stubRoutines_init1
99 if (status != JNI_OK) 102 if (status != JNI_OK)
100 return status; 103 return status;
101 104
102 interpreter_init(); // before any methods loaded 105 interpreter_init(); // before any methods loaded
103 invocationCounter_init(); // before any methods loaded 106 invocationCounter_init(); // before any methods loaded
104 marksweep_init(); 107 marksweep_init();
105 accessFlags_init(); 108 accessFlags_init();
106 templateTable_init(); 109 templateTable_init();
107 InterfaceSupport_init(); 110 InterfaceSupport_init();
108 SharedRuntime::generate_stubs(); 111 SharedRuntime::generate_stubs();
109 universe2_init(); // dependent on codeCache_init and stubRoutines_init 112 universe2_init(); // dependent on codeCache_init and stubRoutines_init1
110 referenceProcessor_init(); 113 referenceProcessor_init();
111 jni_handles_init(); 114 jni_handles_init();
112 #ifndef VM_STRUCTS_KERNEL 115 #ifndef VM_STRUCTS_KERNEL
113 vmStructs_init(); 116 vmStructs_init();
114 #endif // VM_STRUCTS_KERNEL 117 #endif // VM_STRUCTS_KERNEL
120 VMRegImpl::set_regName(); 123 VMRegImpl::set_regName();
121 124
122 if (!universe_post_init()) { 125 if (!universe_post_init()) {
123 return JNI_ERR; 126 return JNI_ERR;
124 } 127 }
125 javaClasses_init(); // must happen after vtable initialization 128 javaClasses_init(); // must happen after vtable initialization
126 stubRoutines_init2(); // note: StubRoutines need 2-phase init 129 stubRoutines_init2(); // note: StubRoutines need 2-phase init
127 130
128 // Although we'd like to, we can't easily do a heap verify 131 // Although we'd like to, we can't easily do a heap verify
129 // here because the main thread isn't yet a JavaThread, so 132 // here because the main thread isn't yet a JavaThread, so
130 // its TLAB may not be made parseable from the usual interfaces. 133 // its TLAB may not be made parseable from the usual interfaces.