mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
6964458: Reimplement class meta-data storage to use native memory
Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com> Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com> Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com> Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
This commit is contained in:
parent
36eee7c8c8
commit
5c58d27aac
853 changed files with 26124 additions and 82956 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -28,7 +28,7 @@
|
|||
#include "interpreter/bytecode.hpp"
|
||||
#include "interpreter/linkResolver.hpp"
|
||||
#include "memory/universe.hpp"
|
||||
#include "oops/methodOop.hpp"
|
||||
#include "oops/method.hpp"
|
||||
#include "runtime/frame.inline.hpp"
|
||||
#include "runtime/signature.hpp"
|
||||
#include "utilities/top.hpp"
|
||||
|
@ -55,7 +55,7 @@ class InterpreterRuntime: AllStatic {
|
|||
private:
|
||||
// Helper functions to access current interpreter state
|
||||
static frame last_frame(JavaThread *thread) { return thread->last_frame(); }
|
||||
static methodOop method(JavaThread *thread) { return last_frame(thread).interpreter_frame_method(); }
|
||||
static Method* method(JavaThread *thread) { return last_frame(thread).interpreter_frame_method(); }
|
||||
static address bcp(JavaThread *thread) { return last_frame(thread).interpreter_frame_bcp(); }
|
||||
static int bci(JavaThread *thread) { return last_frame(thread).interpreter_frame_bci(); }
|
||||
static void set_bcp_and_mdp(address bcp, JavaThread*thread);
|
||||
|
@ -88,9 +88,9 @@ class InterpreterRuntime: AllStatic {
|
|||
static void resolve_ldc (JavaThread* thread, Bytecodes::Code bytecode);
|
||||
|
||||
// Allocation
|
||||
static void _new (JavaThread* thread, constantPoolOopDesc* pool, int index);
|
||||
static void _new (JavaThread* thread, ConstantPool* pool, int index);
|
||||
static void newarray (JavaThread* thread, BasicType type, jint size);
|
||||
static void anewarray (JavaThread* thread, constantPoolOopDesc* pool, int index, jint size);
|
||||
static void anewarray (JavaThread* thread, ConstantPool* pool, int index, jint size);
|
||||
static void multianewarray(JavaThread* thread, jint* first_size_address);
|
||||
static void register_finalizer(JavaThread* thread, oopDesc* obj);
|
||||
|
||||
|
@ -124,9 +124,9 @@ class InterpreterRuntime: AllStatic {
|
|||
static void resolve_invokedynamic(JavaThread* thread);
|
||||
|
||||
// Breakpoints
|
||||
static void _breakpoint(JavaThread* thread, methodOopDesc* method, address bcp);
|
||||
static Bytecodes::Code get_original_bytecode_at(JavaThread* thread, methodOopDesc* method, address bcp);
|
||||
static void set_original_bytecode_at(JavaThread* thread, methodOopDesc* method, address bcp, Bytecodes::Code new_code);
|
||||
static void _breakpoint(JavaThread* thread, Method* method, address bcp);
|
||||
static Bytecodes::Code get_original_bytecode_at(JavaThread* thread, Method* method, address bcp);
|
||||
static void set_original_bytecode_at(JavaThread* thread, Method* method, address bcp, Bytecodes::Code new_code);
|
||||
static bool is_breakpoint(JavaThread *thread) { return Bytecodes::code_or_bp_at(bcp(thread)) == Bytecodes::_breakpoint; }
|
||||
|
||||
// Safepoints
|
||||
|
@ -142,9 +142,9 @@ class InterpreterRuntime: AllStatic {
|
|||
static int interpreter_contains(address pc);
|
||||
|
||||
// Native signature handlers
|
||||
static void prepare_native_call(JavaThread* thread, methodOopDesc* method);
|
||||
static void prepare_native_call(JavaThread* thread, Method* method);
|
||||
static address slow_signature_handler(JavaThread* thread,
|
||||
methodOopDesc* method,
|
||||
Method* method,
|
||||
intptr_t* from, intptr_t* to);
|
||||
|
||||
#if defined(IA32) || defined(AMD64) || defined(ARM)
|
||||
|
@ -174,11 +174,11 @@ class InterpreterRuntime: AllStatic {
|
|||
static nmethod* frequency_counter_overflow(JavaThread* thread, address branch_bcp);
|
||||
|
||||
// Interpreter profiling support
|
||||
static jint bcp_to_di(methodOopDesc* method, address cur_bcp);
|
||||
static jint bcp_to_di(Method* method, address cur_bcp);
|
||||
static void profile_method(JavaThread* thread);
|
||||
static void update_mdp_for_ret(JavaThread* thread, int bci);
|
||||
#ifdef ASSERT
|
||||
static void verify_mdp(methodOopDesc* method, address bcp, address mdp);
|
||||
static void verify_mdp(Method* method, address bcp, address mdp);
|
||||
#endif // ASSERT
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue