[vmkit-commits] [vmkit] r68199 - in /vmkit/trunk/lib/JnJVM: Compiler/JITInfo.cpp VMCore/JavaTypes.cpp VMCore/JavaTypes.h
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Wed Apr 1 05:23:37 PDT 2009
Author: geoffray
Date: Wed Apr 1 07:23:28 2009
New Revision: 68199
URL: http://llvm.org/viewvc/llvm-project?rev=68199&view=rev
Log:
Change naming of signatures in AOT .ll files.
Modified:
vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.h
Modified: vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp?rev=68199&r1=68198&r2=68199&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp Wed Apr 1 07:23:28 2009
@@ -335,19 +335,22 @@
JavaLLVMCompiler* Mod =
(JavaLLVMCompiler*)signature->initialLoader->getCompiler();
- const char* name = 0;
+ Function* res = 0;
if (Mod->isStaticCompiling()) {
- name = virt ? signature->printString("virtual_buf") :
- signature->printString("static_buf");
+ const char* type = virt ? "virtual_buf" : "static_buf";
+ char* buf = (char*)alloca((signature->keyName->size << 1) + 1 + 11);
+ signature->nativeName(buf, type);
+ res = Function::Create(virt ? getVirtualBufType() : getStaticBufType(),
+ GlobalValue::InternalLinkage, buf,
+ Mod->getLLVMModule());
+
+
} else {
- name = "";
+ res = Function::Create(virt ? getVirtualBufType() : getStaticBufType(),
+ GlobalValue::InternalLinkage, "",
+ Mod->getLLVMModule());
}
- Function* res = Function::Create(virt ? getVirtualBufType() :
- getStaticBufType(),
- GlobalValue::InternalLinkage, name,
- Mod->getLLVMModule());
-
BasicBlock* currentBlock = BasicBlock::Create("enter", res);
Function::arg_iterator i = res->arg_begin();
Value *obj, *ptr, *func;
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp?rev=68199&r1=68198&r2=68199&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp Wed Apr 1 07:23:28 2009
@@ -130,3 +130,39 @@
}
return _virtualCallAP;
}
+
+
+void Signdef::nativeName(char* ptr, const char* ext) const {
+ sint32 i = 0;
+ while (i < keyName->size) {
+ char c = keyName->elements[i++];
+ if (c == I_PARG) {
+ ptr[0] = '_';
+ ptr[1] = '_';
+ ptr += 2;
+ } else if (c == '/') {
+ ptr[0] = '_';
+ ++ptr;
+ } else if (c == '_') {
+ ptr[0] = '_';
+ ptr[1] = '1';
+ ptr += 2;
+ } else if (c == I_END_REF) {
+ ptr[0] = '_';
+ ptr[1] = '2';
+ ptr += 2;
+ } else if (c == I_TAB) {
+ ptr[0] = '_';
+ ptr[1] = '3';
+ ptr += 2;
+ } else if (c == I_PARD) {
+ break;
+ } else {
+ ptr[0] = c;
+ ++ptr;
+ }
+ }
+
+ assert(ext && "I need an extension");
+ memcpy(ptr, ext, strlen(ext) + 1);
+}
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.h?rev=68199&r1=68198&r2=68199&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.h Wed Apr 1 07:23:28 2009
@@ -284,6 +284,10 @@
/// printString - Print the signature with the following extension.
///
const char* printString(const char* ext = "") const;
+
+ /// nativeName - Get a native name for callbacks emitted AOT.
+ ///
+ void nativeName(char* buf, const char* ext) const;
/// printWithSign - Print the signature of a method with the method's class
/// and name.
More information about the vmkit-commits
mailing list