mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
8074345: Enable RewriteBytecodes when VM runs with CDS
Enable bytecode rewriting when CDS turned on. Co-authored-by: Ioi Lam <ioi.lam@oracle.com> Reviewed-by: coleenp, iklam
This commit is contained in:
parent
c08ffb03e4
commit
3e6cf09c39
13 changed files with 202 additions and 97 deletions
|
@ -82,6 +82,7 @@ class TemplateTable: AllStatic {
|
|||
enum Operation { add, sub, mul, div, rem, _and, _or, _xor, shl, shr, ushr };
|
||||
enum Condition { equal, not_equal, less, less_equal, greater, greater_equal };
|
||||
enum CacheByte { f1_byte = 1, f2_byte = 2 }; // byte_no codes
|
||||
enum RewriteControl { may_rewrite, may_not_rewrite }; // control for fast code under CDS
|
||||
|
||||
private:
|
||||
static bool _is_initialized; // true if TemplateTable has been initialized
|
||||
|
@ -165,6 +166,10 @@ class TemplateTable: AllStatic {
|
|||
static void dload(int n);
|
||||
static void aload(int n);
|
||||
static void aload_0();
|
||||
static void nofast_aload_0();
|
||||
static void nofast_iload();
|
||||
static void iload_internal(RewriteControl rc = may_rewrite);
|
||||
static void aload_0_internal(RewriteControl rc = may_rewrite);
|
||||
|
||||
static void istore();
|
||||
static void lstore();
|
||||
|
@ -279,10 +284,13 @@ class TemplateTable: AllStatic {
|
|||
static void invokehandle(int byte_no);
|
||||
static void fast_invokevfinal(int byte_no);
|
||||
|
||||
static void getfield_or_static(int byte_no, bool is_static);
|
||||
static void putfield_or_static(int byte_no, bool is_static);
|
||||
static void getfield_or_static(int byte_no, bool is_static, RewriteControl rc = may_rewrite);
|
||||
static void putfield_or_static(int byte_no, bool is_static, RewriteControl rc = may_rewrite);
|
||||
|
||||
static void getfield(int byte_no);
|
||||
static void putfield(int byte_no);
|
||||
static void nofast_getfield(int byte_no);
|
||||
static void nofast_putfield(int byte_no);
|
||||
static void getstatic(int byte_no);
|
||||
static void putstatic(int byte_no);
|
||||
static void pop_and_check_object(Register obj);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue