Skip to content

Commit 396a496

Browse files
committed
8260467: Move well-known classes from systemDictionary.hpp to vmClasses.hpp
Reviewed-by: dholmes, coleenp
1 parent 62ffe75 commit 396a496

35 files changed

+752
-573
lines changed

src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
33
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
44
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55
*
@@ -26,6 +26,7 @@
2626
#include "precompiled.hpp"
2727
#include "asm/macroAssembler.hpp"
2828
#include "classfile/javaClasses.inline.hpp"
29+
#include "classfile/vmClasses.hpp"
2930
#include "interpreter/interpreter.hpp"
3031
#include "interpreter/interpreterRuntime.hpp"
3132
#include "memory/allocation.inline.hpp"
@@ -47,7 +48,7 @@
4748

4849
void MethodHandles::load_klass_from_Class(MacroAssembler* _masm, Register klass_reg) {
4950
if (VerifyMethodHandles)
50-
verify_klass(_masm, klass_reg, SystemDictionary::WK_KLASS_ENUM_NAME(java_lang_Class),
51+
verify_klass(_masm, klass_reg, VM_CLASS_ID(java_lang_Class),
5152
"MH argument is a Class");
5253
__ ldr(klass_reg, Address(klass_reg, java_lang_Class::klass_offset()));
5354
}
@@ -64,10 +65,10 @@ static int check_nonzero(const char* xname, int x) {
6465

6566
#ifdef ASSERT
6667
void MethodHandles::verify_klass(MacroAssembler* _masm,
67-
Register obj, SystemDictionary::WKID klass_id,
68+
Register obj, VMClassID klass_id,
6869
const char* error_message) {
69-
InstanceKlass** klass_addr = SystemDictionary::well_known_klass_addr(klass_id);
70-
Klass* klass = SystemDictionary::well_known_klass(klass_id);
70+
InstanceKlass** klass_addr = vmClasses::klass_addr_at(klass_id);
71+
Klass* klass = vmClasses::klass_at(klass_id);
7172
Register temp = rscratch2;
7273
Register temp2 = rscratch1; // used by MacroAssembler::cmpptr
7374
Label L_ok, L_bad;
@@ -289,7 +290,7 @@ void MethodHandles::generate_method_handle_dispatch(MacroAssembler* _masm,
289290
// The method is a member invoker used by direct method handles.
290291
if (VerifyMethodHandles) {
291292
// make sure the trailing argument really is a MemberName (caller responsibility)
292-
verify_klass(_masm, member_reg, SystemDictionary::WK_KLASS_ENUM_NAME(java_lang_invoke_MemberName),
293+
verify_klass(_masm, member_reg, VM_CLASS_ID(java_lang_invoke_MemberName),
293294
"MemberName required for invokeVirtual etc.");
294295
}
295296

src/hotspot/cpu/aarch64/methodHandles_aarch64.hpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2010, 2021, Oracle and/or its affiliates. All rights reserved.
33
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
44
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55
*
@@ -36,11 +36,11 @@ enum /* platform_dependent_constants */ {
3636
static void load_klass_from_Class(MacroAssembler* _masm, Register klass_reg);
3737

3838
static void verify_klass(MacroAssembler* _masm,
39-
Register obj, SystemDictionary::WKID klass_id,
39+
Register obj, VMClassID klass_id,
4040
const char* error_message = "wrong klass") NOT_DEBUG_RETURN;
4141

4242
static void verify_method_handle(MacroAssembler* _masm, Register mh_reg) {
43-
verify_klass(_masm, mh_reg, SystemDictionary::WK_KLASS_ENUM_NAME(java_lang_invoke_MethodHandle),
43+
verify_klass(_masm, mh_reg, VM_CLASS_ID(java_lang_invoke_MethodHandle),
4444
"reference is a MH");
4545
}
4646

src/hotspot/cpu/arm/methodHandles_arm.cpp

+6-5
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
#include "precompiled.hpp"
3030
#include "jvm.h"
3131
#include "classfile/javaClasses.inline.hpp"
32+
#include "classfile/vmClasses.hpp"
3233
#include "interpreter/interpreter.hpp"
3334
#include "interpreter/interpreterRuntime.hpp"
3435
#include "logging/log.hpp"
@@ -53,7 +54,7 @@
5354

5455
void MethodHandles::load_klass_from_Class(MacroAssembler* _masm, Register klass_reg, Register temp1, Register temp2) {
5556
if (VerifyMethodHandles) {
56-
verify_klass(_masm, klass_reg, temp1, temp2, SystemDictionary::WK_KLASS_ENUM_NAME(java_lang_Class),
57+
verify_klass(_masm, klass_reg, temp1, temp2, VM_CLASS_ID(java_lang_Class),
5758
"MH argument is a Class");
5859
}
5960
__ ldr(klass_reg, Address(klass_reg, java_lang_Class::klass_offset()));
@@ -71,10 +72,10 @@ static int check_nonzero(const char* xname, int x) {
7172

7273
#ifdef ASSERT
7374
void MethodHandles::verify_klass(MacroAssembler* _masm,
74-
Register obj, Register temp1, Register temp2, SystemDictionary::WKID klass_id,
75+
Register obj, Register temp1, Register temp2, VMClassID klass_id,
7576
const char* error_message) {
76-
InstanceKlass** klass_addr = SystemDictionary::well_known_klass_addr(klass_id);
77-
Klass* klass = SystemDictionary::well_known_klass(klass_id);
77+
InstanceKlass** klass_addr = vmClasses::klass_addr_at(klass_id);
78+
Klass* klass = vmClasses::klass_at(klass_id);
7879
Label L_ok, L_bad;
7980
BLOCK_COMMENT("verify_klass {");
8081
__ verify_oop(obj);
@@ -305,7 +306,7 @@ void MethodHandles::generate_method_handle_dispatch(MacroAssembler* _masm,
305306
// The method is a member invoker used by direct method handles.
306307
if (VerifyMethodHandles) {
307308
// make sure the trailing argument really is a MemberName (caller responsibility)
308-
verify_klass(_masm, member_reg, temp2, temp3, SystemDictionary::WK_KLASS_ENUM_NAME(java_lang_invoke_MemberName),
309+
verify_klass(_masm, member_reg, temp2, temp3, VM_CLASS_ID(java_lang_invoke_MemberName),
309310
"MemberName required for invokeVirtual etc.");
310311
}
311312

src/hotspot/cpu/arm/methodHandles_arm.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -35,7 +35,7 @@ enum /* platform_dependent_constants */ {
3535
static void load_klass_from_Class(MacroAssembler* _masm, Register klass_reg, Register temp1, Register temp2);
3636

3737
static void verify_klass(MacroAssembler* _masm,
38-
Register obj, Register temp1, Register temp2, SystemDictionary::WKID klass_id,
38+
Register obj, Register temp1, Register temp2, VMClassID klass_id,
3939
const char* error_message = "wrong klass") NOT_DEBUG_RETURN;
4040

4141
static void verify_ref_kind(MacroAssembler* _masm, int ref_kind, Register member_reg, Register temp) NOT_DEBUG_RETURN;

src/hotspot/cpu/ppc/methodHandles_ppc.cpp

+6-5
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include "jvm.h"
2828
#include "asm/macroAssembler.inline.hpp"
2929
#include "classfile/javaClasses.inline.hpp"
30+
#include "classfile/vmClasses.hpp"
3031
#include "interpreter/interpreter.hpp"
3132
#include "logging/log.hpp"
3233
#include "logging/logStream.hpp"
@@ -56,7 +57,7 @@ inline static RegisterOrConstant constant(int value) {
5657
void MethodHandles::load_klass_from_Class(MacroAssembler* _masm, Register klass_reg,
5758
Register temp_reg, Register temp2_reg) {
5859
if (VerifyMethodHandles) {
59-
verify_klass(_masm, klass_reg, SystemDictionary::WK_KLASS_ENUM_NAME(java_lang_Class),
60+
verify_klass(_masm, klass_reg, VM_CLASS_ID(java_lang_Class),
6061
temp_reg, temp2_reg, "MH argument is a Class");
6162
}
6263
__ ld(klass_reg, java_lang_Class::klass_offset(), klass_reg);
@@ -74,11 +75,11 @@ static int check_nonzero(const char* xname, int x) {
7475

7576
#ifdef ASSERT
7677
void MethodHandles::verify_klass(MacroAssembler* _masm,
77-
Register obj_reg, SystemDictionary::WKID klass_id,
78+
Register obj_reg, VMClassID klass_id,
7879
Register temp_reg, Register temp2_reg,
7980
const char* error_message) {
80-
InstanceKlass** klass_addr = SystemDictionary::well_known_klass_addr(klass_id);
81-
Klass* klass = SystemDictionary::well_known_klass(klass_id);
81+
InstanceKlass** klass_addr = VMClassses::klass_addr_at(klass_id);
82+
Klass* klass = VMClassses::klass_at(klass_id);
8283
Label L_ok, L_bad;
8384
BLOCK_COMMENT("verify_klass {");
8485
__ verify_oop(obj_reg, FILE_AND_LINE);
@@ -325,7 +326,7 @@ void MethodHandles::generate_method_handle_dispatch(MacroAssembler* _masm,
325326
// The method is a member invoker used by direct method handles.
326327
if (VerifyMethodHandles) {
327328
// make sure the trailing argument really is a MemberName (caller responsibility)
328-
verify_klass(_masm, member_reg, SystemDictionary::WK_KLASS_ENUM_NAME(MemberName_klass),
329+
verify_klass(_masm, member_reg, VM_CLASS_ID(MemberName_klass),
329330
temp1, temp2,
330331
"MemberName required for invokeVirtual etc.");
331332
}

src/hotspot/cpu/ppc/methodHandles_ppc.hpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2002, 2021, Oracle and/or its affiliates. All rights reserved.
33
* Copyright (c) 2012, 2015 SAP SE. All rights reserved.
44
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55
*
@@ -36,13 +36,13 @@ enum /* platform_dependent_constants */ {
3636
static void load_klass_from_Class(MacroAssembler* _masm, Register klass_reg, Register temp_reg, Register temp2_reg);
3737

3838
static void verify_klass(MacroAssembler* _masm,
39-
Register obj_reg, SystemDictionary::WKID klass_id,
39+
Register obj_reg, VMClassID klass_id,
4040
Register temp_reg, Register temp2_reg,
4141
const char* error_message = "wrong klass") NOT_DEBUG_RETURN;
4242

4343
static void verify_method_handle(MacroAssembler* _masm, Register mh_reg,
4444
Register temp_reg, Register temp2_reg) {
45-
verify_klass(_masm, mh_reg, SystemDictionary::WK_KLASS_ENUM_NAME(java_lang_invoke_MethodHandle),
45+
verify_klass(_masm, mh_reg, VM_CLASS_ID(java_lang_invoke_MethodHandle),
4646
temp_reg, temp2_reg,
4747
"reference is a MH");
4848
}

src/hotspot/cpu/s390/methodHandles_s390.cpp

+6-5
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include "jvm.h"
2828
#include "asm/macroAssembler.inline.hpp"
2929
#include "classfile/javaClasses.inline.hpp"
30+
#include "classfile/vmClasses.hpp"
3031
#include "interpreter/interpreter.hpp"
3132
#include "logging/log.hpp"
3233
#include "logging/logStream.hpp"
@@ -56,7 +57,7 @@ static RegisterOrConstant constant(int value) {
5657
void MethodHandles::load_klass_from_Class(MacroAssembler* _masm, Register klass_reg,
5758
Register temp_reg, Register temp2_reg) {
5859
if (VerifyMethodHandles) {
59-
verify_klass(_masm, klass_reg, SystemDictionary::WK_KLASS_ENUM_NAME(java_lang_Class),
60+
verify_klass(_masm, klass_reg, VM_CLASS_ID(java_lang_Class),
6061
temp_reg, temp2_reg, "MH argument is a Class");
6162
}
6263
__ z_lg(klass_reg, Address(klass_reg, java_lang_Class::klass_offset()));
@@ -75,12 +76,12 @@ static int check_nonzero(const char* xname, int x) {
7576

7677
#ifdef ASSERT
7778
void MethodHandles::verify_klass(MacroAssembler* _masm,
78-
Register obj_reg, SystemDictionary::WKID klass_id,
79+
Register obj_reg, VMClassID klass_id,
7980
Register temp_reg, Register temp2_reg,
8081
const char* error_message) {
8182

82-
InstanceKlass** klass_addr = SystemDictionary::well_known_klass_addr(klass_id);
83-
Klass* klass = SystemDictionary::well_known_klass(klass_id);
83+
InstanceKlass** klass_addr = VMClassses::klass_addr_at(klass_id);
84+
Klass* klass = VMClassses::klass_at(klass_id);
8485

8586
assert(temp_reg != Z_R0 && // Is used as base register!
8687
temp_reg != noreg && temp2_reg != noreg, "need valid registers!");
@@ -387,7 +388,7 @@ void MethodHandles::generate_method_handle_dispatch(MacroAssembler* _masm,
387388
if (VerifyMethodHandles) {
388389
// Make sure the trailing argument really is a MemberName (caller responsibility).
389390
verify_klass(_masm, member_reg,
390-
SystemDictionary::WK_KLASS_ENUM_NAME(MemberName_klass),
391+
VM_CLASS_ID(MemberName_klass),
391392
temp1, temp2,
392393
"MemberName required for invokeVirtual etc.");
393394
}

src/hotspot/cpu/s390/methodHandles_s390.hpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved.
33
* Copyright (c) 2016 SAP SE. All rights reserved.
44
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55
*
@@ -36,13 +36,13 @@
3636
static void load_klass_from_Class(MacroAssembler* _masm, Register klass_reg, Register temp_reg, Register temp2_reg);
3737

3838
static void verify_klass(MacroAssembler* _masm,
39-
Register obj_reg, SystemDictionary::WKID klass_id,
39+
Register obj_reg, VMClassID klass_id,
4040
Register temp_reg, Register temp2_reg,
4141
const char* error_message = "wrong klass") NOT_DEBUG_RETURN;
4242

4343
static void verify_method_handle(MacroAssembler* _masm, Register mh_reg,
4444
Register temp_reg, Register temp2_reg) {
45-
verify_klass(_masm, mh_reg, SystemDictionary::WK_KLASS_ENUM_NAME(java_lang_invoke_MethodHandle),
45+
verify_klass(_masm, mh_reg, VM_CLASS_ID(java_lang_invoke_MethodHandle),
4646
temp_reg, temp2_reg,
4747
"reference is a MH");
4848
}

src/hotspot/cpu/x86/methodHandles_x86.cpp

+6-5
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include "precompiled.hpp"
2626
#include "jvm.h"
2727
#include "asm/macroAssembler.hpp"
28+
#include "classfile/vmClasses.hpp"
2829
#include "compiler/disassembler.hpp"
2930
#include "classfile/javaClasses.inline.hpp"
3031
#include "interpreter/interpreter.hpp"
@@ -54,7 +55,7 @@
5455

5556
void MethodHandles::load_klass_from_Class(MacroAssembler* _masm, Register klass_reg) {
5657
if (VerifyMethodHandles)
57-
verify_klass(_masm, klass_reg, SystemDictionary::WK_KLASS_ENUM_NAME(java_lang_Class),
58+
verify_klass(_masm, klass_reg, VM_CLASS_ID(java_lang_Class),
5859
"MH argument is a Class");
5960
__ movptr(klass_reg, Address(klass_reg, java_lang_Class::klass_offset()));
6061
}
@@ -71,10 +72,10 @@ static int check_nonzero(const char* xname, int x) {
7172

7273
#ifdef ASSERT
7374
void MethodHandles::verify_klass(MacroAssembler* _masm,
74-
Register obj, SystemDictionary::WKID klass_id,
75+
Register obj, VMClassID klass_id,
7576
const char* error_message) {
76-
InstanceKlass** klass_addr = SystemDictionary::well_known_klass_addr(klass_id);
77-
Klass* klass = SystemDictionary::well_known_klass(klass_id);
77+
InstanceKlass** klass_addr = vmClasses::klass_addr_at(klass_id);
78+
Klass* klass = vmClasses::klass_at(klass_id);
7879
Register temp = rdi;
7980
Register temp2 = noreg;
8081
LP64_ONLY(temp2 = rscratch1); // used by MacroAssembler::cmpptr and load_klass
@@ -345,7 +346,7 @@ void MethodHandles::generate_method_handle_dispatch(MacroAssembler* _masm,
345346
// The method is a member invoker used by direct method handles.
346347
if (VerifyMethodHandles) {
347348
// make sure the trailing argument really is a MemberName (caller responsibility)
348-
verify_klass(_masm, member_reg, SystemDictionary::WK_KLASS_ENUM_NAME(java_lang_invoke_MemberName),
349+
verify_klass(_masm, member_reg, VM_CLASS_ID(java_lang_invoke_MemberName),
349350
"MemberName required for invokeVirtual etc.");
350351
}
351352

src/hotspot/cpu/x86/methodHandles_x86.hpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2010, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -35,11 +35,11 @@ enum /* platform_dependent_constants */ {
3535
static void load_klass_from_Class(MacroAssembler* _masm, Register klass_reg);
3636

3737
static void verify_klass(MacroAssembler* _masm,
38-
Register obj, SystemDictionary::WKID klass_id,
38+
Register obj, VMClassID klass_id,
3939
const char* error_message = "wrong klass") NOT_DEBUG_RETURN;
4040

4141
static void verify_method_handle(MacroAssembler* _masm, Register mh_reg) {
42-
verify_klass(_masm, mh_reg, SystemDictionary::WK_KLASS_ENUM_NAME(java_lang_invoke_MethodHandle),
42+
verify_klass(_masm, mh_reg, VM_CLASS_ID(MethodHandle_klass),
4343
"reference is a MH");
4444
}
4545

src/hotspot/share/ci/ciEnv.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -85,9 +85,9 @@
8585

8686
ciObject* ciEnv::_null_object_instance;
8787

88-
#define WK_KLASS_DEFN(name, ignore_s) ciInstanceKlass* ciEnv::_##name = NULL;
89-
WK_KLASSES_DO(WK_KLASS_DEFN)
90-
#undef WK_KLASS_DEFN
88+
#define VM_CLASS_DEFN(name, ignore_s) ciInstanceKlass* ciEnv::_##name = NULL;
89+
VM_CLASSES_DO(VM_CLASS_DEFN)
90+
#undef VM_CLASS_DEFN
9191

9292
ciSymbol* ciEnv::_unloaded_cisymbol = NULL;
9393
ciInstanceKlass* ciEnv::_unloaded_ciinstance_klass = NULL;

src/hotspot/share/ci/ciEnv.hpp

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@
2727

2828
#include "ci/ciClassList.hpp"
2929
#include "ci/ciObjectFactory.hpp"
30-
#include "classfile/systemDictionary.hpp"
30+
#include "classfile/vmClassMacros.hpp"
3131
#include "code/debugInfoRec.hpp"
3232
#include "code/dependencies.hpp"
3333
#include "code/exceptionHandlerTable.hpp"
@@ -84,9 +84,9 @@ class ciEnv : StackObj {
8484
// Distinguished instances of certain ciObjects..
8585
static ciObject* _null_object_instance;
8686

87-
#define WK_KLASS_DECL(name, ignore_s) static ciInstanceKlass* _##name;
88-
WK_KLASSES_DO(WK_KLASS_DECL)
89-
#undef WK_KLASS_DECL
87+
#define VM_CLASS_DECL(name, ignore_s) static ciInstanceKlass* _##name;
88+
VM_CLASSES_DO(VM_CLASS_DECL)
89+
#undef VM_CLASS_DECL
9090

9191
static ciSymbol* _unloaded_cisymbol;
9292
static ciInstanceKlass* _unloaded_ciinstance_klass;
@@ -383,12 +383,12 @@ class ciEnv : StackObj {
383383

384384

385385
// Access to certain well known ciObjects.
386-
#define WK_KLASS_FUNC(name, ignore_s) \
386+
#define VM_CLASS_FUNC(name, ignore_s) \
387387
ciInstanceKlass* name() { \
388388
return _##name;\
389389
}
390-
WK_KLASSES_DO(WK_KLASS_FUNC)
391-
#undef WK_KLASS_FUNC
390+
VM_CLASSES_DO(VM_CLASS_FUNC)
391+
#undef VM_CLASS_FUNC
392392

393393
ciInstance* NullPointerException_instance() {
394394
assert(_NullPointerException_instance != NULL, "initialization problem");

src/hotspot/share/ci/ciObjArrayKlass.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@
2727
#include "ci/ciObjArrayKlass.hpp"
2828
#include "ci/ciSymbol.hpp"
2929
#include "ci/ciUtilities.inline.hpp"
30+
#include "classfile/systemDictionary.hpp"
3031
#include "oops/objArrayKlass.hpp"
3132

3233
// ciObjArrayKlass

0 commit comments

Comments
 (0)