Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/hotspot/src/share/vm/shark/sharkMemoryManager.cpp
32285 views
1
/*
2
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
3
* Copyright 2009 Red Hat, Inc.
4
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5
*
6
* This code is free software; you can redistribute it and/or modify it
7
* under the terms of the GNU General Public License version 2 only, as
8
* published by the Free Software Foundation.
9
*
10
* This code is distributed in the hope that it will be useful, but WITHOUT
11
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13
* version 2 for more details (a copy is included in the LICENSE file that
14
* accompanied this code).
15
*
16
* You should have received a copy of the GNU General Public License version
17
* 2 along with this work; if not, write to the Free Software Foundation,
18
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19
*
20
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21
* or visit www.oracle.com if you need additional information or have any
22
* questions.
23
*
24
*/
25
26
#include "precompiled.hpp"
27
#include "shark/llvmHeaders.hpp"
28
#include "shark/sharkEntry.hpp"
29
#include "shark/sharkMemoryManager.hpp"
30
31
using namespace llvm;
32
33
void SharkMemoryManager::AllocateGOT() {
34
mm()->AllocateGOT();
35
}
36
37
unsigned char* SharkMemoryManager::getGOTBase() const {
38
return mm()->getGOTBase();
39
}
40
41
unsigned char* SharkMemoryManager::allocateStub(const GlobalValue* F,
42
unsigned StubSize,
43
unsigned Alignment) {
44
return mm()->allocateStub(F, StubSize, Alignment);
45
}
46
47
unsigned char* SharkMemoryManager::startFunctionBody(const Function* F,
48
uintptr_t& ActualSize) {
49
return mm()->startFunctionBody(F, ActualSize);
50
}
51
52
void SharkMemoryManager::endFunctionBody(const Function* F,
53
unsigned char* FunctionStart,
54
unsigned char* FunctionEnd) {
55
mm()->endFunctionBody(F, FunctionStart, FunctionEnd);
56
57
SharkEntry *entry = get_entry_for_function(F);
58
if (entry != NULL)
59
entry->set_code_limit(FunctionEnd);
60
}
61
62
void SharkMemoryManager::setMemoryWritable() {
63
mm()->setMemoryWritable();
64
}
65
66
void SharkMemoryManager::setMemoryExecutable() {
67
mm()->setMemoryExecutable();
68
}
69
70
void SharkMemoryManager::deallocateFunctionBody(void *ptr) {
71
mm()->deallocateFunctionBody(ptr);
72
}
73
74
uint8_t* SharkMemoryManager::allocateGlobal(uintptr_t Size,
75
unsigned int Alignment) {
76
return mm()->allocateGlobal(Size, Alignment);
77
}
78
79
void* SharkMemoryManager::getPointerToNamedFunction(const std::string &Name, bool AbortOnFailure) {
80
return mm()->getPointerToNamedFunction(Name, AbortOnFailure);
81
}
82
83
void SharkMemoryManager::setPoisonMemory(bool poison) {
84
mm()->setPoisonMemory(poison);
85
}
86
87
unsigned char *SharkMemoryManager::allocateSpace(intptr_t Size,
88
unsigned int Alignment) {
89
return mm()->allocateSpace(Size, Alignment);
90
}
91
92
#if SHARK_LLVM_VERSION <= 32
93
94
uint8_t* SharkMemoryManager::allocateCodeSection(uintptr_t Size, unsigned Alignment, unsigned SectionID) {
95
return mm()->allocateCodeSection(Size, Alignment, SectionID);
96
}
97
98
uint8_t* SharkMemoryManager::allocateDataSection(uintptr_t Size, unsigned Alignment, unsigned SectionID) {
99
return mm()->allocateDataSection(Size, Alignment, SectionID);
100
}
101
102
void SharkMemoryManager::deallocateExceptionTable(void *ptr) {
103
mm()->deallocateExceptionTable(ptr);
104
}
105
106
unsigned char* SharkMemoryManager::startExceptionTable(const Function* F,
107
uintptr_t& ActualSize) {
108
return mm()->startExceptionTable(F, ActualSize);
109
}
110
111
void SharkMemoryManager::endExceptionTable(const Function* F,
112
unsigned char* TableStart,
113
unsigned char* TableEnd,
114
unsigned char* FrameRegister) {
115
mm()->endExceptionTable(F, TableStart, TableEnd, FrameRegister);
116
}
117
118
#else
119
120
uint8_t *SharkMemoryManager::allocateCodeSection(uintptr_t Size, unsigned Alignment, unsigned SectionID, StringRef SectionName) {
121
return mm()->allocateCodeSection(Size, Alignment, SectionID, SectionName);
122
}
123
124
uint8_t* SharkMemoryManager::allocateDataSection(uintptr_t Size, unsigned Alignment, unsigned SectionID, StringRef SectionName, bool IsReadOnly) {
125
return mm()->allocateDataSection(Size, Alignment, SectionID, SectionName, IsReadOnly);
126
}
127
128
bool SharkMemoryManager::finalizeMemory(std::string *ErrMsg) {
129
return mm()->finalizeMemory(ErrMsg);
130
}
131
132
#endif
133
134