1 Star 0 Fork 82

李振华/openjdk-1.8.0

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
AARCH64-fix-itable-stub-code-size-limit.patch 1.50 KB
一键复制 编辑 原始数据 按行查看 历史
jdkboy 提交于 2020-03-21 11:30 . delete redundant info
From 8e390a2cdfff1138f3ba6e694395cd8790aa1603 Mon Sep 17 00:00:00 2001
Date: Fri, 19 Apr 2019 17:33:26 +0000
Subject: [PATCH] AARCH64 fix itable stub code size limit
---
hotspot/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp | 12 +++++++++---
hotspot/src/share/vm/code/codeCache.cpp | 2 ++
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/hotspot/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp
index d8d1ec11ba..645b690dae 100644
--- a/hotspot/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp
+++ b/hotspot/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp
@@ -130,6 +130,10 @@ VtableStub* VtableStubs::create_itable_stub(int itable_index) {
// returned by pd_code_size_limit!
const int code_length = VtableStub::pd_code_size_limit(false);
VtableStub* s = new(code_length) VtableStub(false, itable_index);
+ // Can be NULL if there is no free space in the code cache.
+ if (s == NULL) {
+ return NULL;
+ }
ResourceMark rm;
CodeBuffer cb(s->entry_point(), code_length);
MacroAssembler* masm = new MacroAssembler(&cb);
@@ -222,10 +226,12 @@ int VtableStub::pd_code_size_limit(bool is_vtable_stub) {
if (CountCompiledCalls)
size += 6 * 4;
// FIXME: vtable stubs only need 36 bytes
- if (is_vtable_stub)
+ if (is_vtable_stub) {
size += 52;
- else
- size += 176;
+ } else {
+ // itable code size limit
+ size += 192;
+ }
return size;
// In order to tune these parameters, run the JVM with VM options
--
2.19.0
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/li_zhen_hua/openjdk-1.8.0.git
git@gitee.com:li_zhen_hua/openjdk-1.8.0.git
li_zhen_hua
openjdk-1.8.0
openjdk-1.8.0
master

搜索帮助