18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "interp_masm_x86.hpp"
27 #include "interpreter/interpreter.hpp"
28 #include "interpreter/interpreterRuntime.hpp"
29 #include "logging/log.hpp"
30 #include "oops/arrayOop.hpp"
31 #include "oops/markOop.hpp"
32 #include "oops/methodData.hpp"
33 #include "oops/method.hpp"
34 #include "prims/jvmtiExport.hpp"
35 #include "prims/jvmtiThreadState.hpp"
36 #include "runtime/basicLock.hpp"
37 #include "runtime/biasedLocking.hpp"
38 #include "runtime/safepointMechanism.hpp"
39 #include "runtime/sharedRuntime.hpp"
40 #include "runtime/thread.inline.hpp"
41
42 // Implementation of InterpreterMacroAssembler
43
44 void InterpreterMacroAssembler::jump_to_entry(address entry) {
45 assert(entry, "Entry must have been generated by now");
46 jump(RuntimeAddress(entry));
47 }
48
49 void InterpreterMacroAssembler::profile_obj_type(Register obj, const Address& mdo_addr) {
50 Label update, next, none;
51
52 verify_oop(obj);
53
54 testptr(obj, obj);
55 jccb(Assembler::notZero, update);
56 orptr(mdo_addr, TypeEntries::null_seen);
57 jmpb(next);
|
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "interp_masm_x86.hpp"
27 #include "interpreter/interpreter.hpp"
28 #include "interpreter/interpreterRuntime.hpp"
29 #include "logging/log.hpp"
30 #include "oops/arrayOop.hpp"
31 #include "oops/markOop.hpp"
32 #include "oops/methodData.hpp"
33 #include "oops/method.hpp"
34 #include "prims/jvmtiExport.hpp"
35 #include "prims/jvmtiThreadState.hpp"
36 #include "runtime/basicLock.hpp"
37 #include "runtime/biasedLocking.hpp"
38 #include "runtime/frame.inline.hpp"
39 #include "runtime/safepointMechanism.hpp"
40 #include "runtime/sharedRuntime.hpp"
41 #include "runtime/thread.inline.hpp"
42
43 // Implementation of InterpreterMacroAssembler
44
45 void InterpreterMacroAssembler::jump_to_entry(address entry) {
46 assert(entry, "Entry must have been generated by now");
47 jump(RuntimeAddress(entry));
48 }
49
50 void InterpreterMacroAssembler::profile_obj_type(Register obj, const Address& mdo_addr) {
51 Label update, next, none;
52
53 verify_oop(obj);
54
55 testptr(obj, obj);
56 jccb(Assembler::notZero, update);
57 orptr(mdo_addr, TypeEntries::null_seen);
58 jmpb(next);
|