[vmkit-commits] [vmkit] r198289 - Add some annotation names
Gael Thomas
gael.thomas at lip6.fr
Wed Jan 1 16:02:16 PST 2014
Author: gthomas
Date: Wed Jan 1 18:02:15 2014
New Revision: 198289
URL: http://llvm.org/viewvc/llvm-project?rev=198289&view=rev
Log:
Add some annotation names
Modified:
vmkit/branches/mcjit/include/j3/j3.h
vmkit/branches/mcjit/include/j3/j3class.h
vmkit/branches/mcjit/include/j3/j3constants.h
vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc
vmkit/branches/mcjit/lib/j3/vm/j3.cc
vmkit/branches/mcjit/lib/j3/vm/j3class.cc
vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
vmkit/branches/mcjit/lib/j3/vm/j3constants.cc
Modified: vmkit/branches/mcjit/include/j3/j3.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3.h?rev=198289&r1=198288&r2=198289&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3.h (original)
+++ vmkit/branches/mcjit/include/j3/j3.h Wed Jan 1 18:02:15 2014
@@ -13,6 +13,7 @@
#include "j3/j3typesdef.h"
#include "j3/j3jni.h"
#include "j3/j3monitor.h"
+#include "j3/j3constants.h"
namespace j3 {
class J3InitialClassLoader;
@@ -50,6 +51,11 @@ namespace j3 {
static J3* create();
+#define defJavaConstantName(name, id) \
+ const vmkit::Name* name;
+ onJavaConstantNames(defJavaConstantName)
+#undef defJavaConstantName
+
#define defPrimitive(name, ctype, llvmtype, scale) \
J3Primitive* type##name;
onJavaTypes(defPrimitive)
@@ -73,6 +79,7 @@ namespace j3 {
J3Method* classClassInit;
J3Field* classClassVMData;
+ J3Class* threadClass;
J3Field* threadClassVMData;
J3Method* threadClassRun;
@@ -81,12 +88,6 @@ namespace j3 {
J3Field* fieldClassSlot;
J3Method* fieldClassInit;
- const vmkit::Name* codeAttr;
- const vmkit::Name* constantValueAttr;
- const vmkit::Name* initName;
- const vmkit::Name* clinitName;
- const vmkit::Name* clinitSign;
-
llvm::Type* typeJNIEnvPtr;
llvm::Type* typeJ3VirtualTablePtr;
llvm::Type* typeJ3Type;
Modified: vmkit/branches/mcjit/include/j3/j3class.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3class.h?rev=198289&r1=198288&r2=198289&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3class.h (original)
+++ vmkit/branches/mcjit/include/j3/j3class.h Wed Jan 1 18:02:15 2014
@@ -244,8 +244,6 @@ namespace j3 {
J3Field* findVirtualField(const vmkit::Name* name, const J3Type* type, bool error=1);
J3Field* findStaticField(const vmkit::Name* name, const J3Type* type, bool error=1);
- J3Field* findVirtualField(const wchar_t* name, const J3Type* type, bool error=1);
- J3Field* findStaticField(const wchar_t* name, const J3Type* type, bool error=1);
};
class J3ArrayClass : public J3ObjectType {
Modified: vmkit/branches/mcjit/include/j3/j3constants.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3constants.h?rev=198289&r1=198288&r2=198289&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3constants.h (original)
+++ vmkit/branches/mcjit/include/j3/j3constants.h Wed Jan 1 18:02:15 2014
@@ -23,12 +23,23 @@ namespace j3 {
static const int MAGIC = 0xcafebabe;
- static wchar_t codeAttr[];
- static wchar_t constantValueAttr[];
+#define onJavaConstantNames(_) \
+ _(clinitName, L"<clinit>") \
+ _(clinitSign, L"()V") \
+ _(initName, L"<init>") \
+ \
+ _(codeAttribute, L"Code") \
+ _(constantValueAttribute, L"ConstantValue") \
+ _(annotationsAttribute, L"RuntimeVisibleAnnotations") \
+ _(exceptionsAttribute, L"Exceptions") \
+ _(lineNumberTableAttribute, L"LineNumberTable") \
+ _(innerClassesAttribute, L"InnerClasses") \
+ _(sourceFileAttribute, L"SourceFile") \
+ _(signatureAttribute, L"Signature") \
+ _(enclosingMethodAttribute, L"EnclosingMethod") \
+ _(paramAnnotationsAttribute, L"RuntimeVisibleParameterAnnotations") \
+ _(annotationDefaultAttribute, L"AnnotationDefault")
- static wchar_t clinitName[];
- static wchar_t clinitSign[];
- static wchar_t initName[];
static char nativePrefix[];
static void initialize(vmkit::Names* names);
Modified: vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc?rev=198289&r1=198288&r2=198289&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc (original)
+++ vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc Wed Jan 1 18:02:15 2014
@@ -23,26 +23,26 @@ static const char* rtjar = OPENJDK_HOME"
void J3Lib::bootstrap(J3* vm) {
J3ObjectHandle* prev = J3Thread::get()->tell();
-
+ J3Class* threadGroupClass = vm->initialClassLoader->loadClass(vm->names()->get(L"java/lang/ThreadGroup"));
J3Method* sysThreadGroupInit = vm->initialClassLoader->method(0,
- L"java/lang/ThreadGroup",
- J3Cst::initName,
- L"()V");
+ threadGroupClass,
+ vm->initName,
+ vm->names()->get(L"()V"));
J3ObjectHandle* sysThreadGroup = J3ObjectHandle::doNewObject(sysThreadGroupInit->cl());
sysThreadGroupInit->invokeSpecial(sysThreadGroup);
J3Method* appThreadGroupInit = vm->initialClassLoader->method(0,
- L"java/lang/ThreadGroup",
- J3Cst::initName,
- L"(Ljava/lang/ThreadGroup;Ljava/lang/String;)V");
+ threadGroupClass,
+ vm->initName,
+ vm->names()->get(L"(Ljava/lang/ThreadGroup;Ljava/lang/String;)V"));
J3ObjectHandle* appThreadGroup = J3ObjectHandle::doNewObject(appThreadGroupInit->cl());
appThreadGroupInit->invokeSpecial(appThreadGroup, sysThreadGroup, vm->utfToString("main"));
J3Method* threadInit = vm->initialClassLoader->method(0,
- L"java/lang/Thread",
- J3Cst::initName,
- L"(Ljava/lang/ThreadGroup;Ljava/lang/String;)V");
+ vm->threadClass,
+ vm->initName,
+ vm->names()->get(L"(Ljava/lang/ThreadGroup;Ljava/lang/String;)V"));
J3ObjectHandle* mainThread = J3ObjectHandle::doNewObject(threadInit->cl());
J3Thread::get()->assocJavaThread(mainThread);
Modified: vmkit/branches/mcjit/lib/j3/vm/j3.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3.cc?rev=198289&r1=198288&r2=198289&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3.cc Wed Jan 1 18:02:15 2014
@@ -30,12 +30,13 @@ J3::J3(vmkit::BumpAllocator* allocator)
_names(allocator),
monitorManager(allocator),
llvmSignatures(llvmFunctionTypeLess, allocator) {
+
+#define defJavaConstantName(name, id) \
+ name = names()->get(id);
+ onJavaConstantNames(defJavaConstantName)
+#undef defJavaConstantName
+
pthread_mutex_init(&stringsMutex, 0);
- constantValueAttr = names()->get(J3Cst::constantValueAttr);
- codeAttr = names()->get(J3Cst::codeAttr);
- clinitName = names()->get(J3Cst::clinitName);
- clinitSign = names()->get(J3Cst::clinitSign);
- initName = names()->get(J3Cst::initName);
interfaceTrampoline = J3Trampoline::buildInterfaceTrampoline(allocator);
}
@@ -97,8 +98,8 @@ void J3::run() {
#define z_class(clName) initialClassLoader->loadClass(names()->get(clName))
#define z_method(access, cl, name, sign) initialClassLoader->method(access, cl, name, sign)
#define z_field(access, cl, name, type) J3Cst::isStatic(access) \
- ? cl->findStaticField(name, type) \
- : cl->findVirtualField(name, type);
+ ? cl->findStaticField(names()->get(name), type) \
+ : cl->findVirtualField(names()->get(name), type);
nbArrayInterfaces = 2;
@@ -110,22 +111,23 @@ void J3::run() {
objectClass = z_class(L"java/lang/Object");
stringClass = z_class(L"java/lang/String");
- stringClassInit = z_method(0, stringClass, J3Cst::initName, L"([CZ)V");
+ stringClassInit = z_method(0, stringClass, initName, names()->get(L"([CZ)V"));
stringClassValue = z_field(0, stringClass, L"value", charArrayClass);
classClass = z_class(L"java/lang/Class");
J3Field hf(J3Cst::ACC_PRIVATE, names()->get(L"** vmData **"), typeLong);
classClass->resolve(&hf, 1);
- classClassInit = z_method(0, classClass, J3Cst::initName, L"()V");
- classClassVMData = z_field(0, classClass, hf.name(), hf.type());
+ classClassInit = z_method(0, classClass, initName, names()->get(L"()V"));
+ classClassVMData = classClass->findVirtualField(hf.name(), hf.type());
- threadClassRun = z_method(0, z_class(L"java/lang/Thread"), L"run", L"()V");
+ threadClass = z_class(L"java/lang/Thread");
+ threadClassRun = z_method(0, threadClass, L"run", L"()V");
threadClassVMData = initialClassLoader->loadClass(names()->get("java/lang/Thread"))
->findVirtualField(names()->get(L"eetop"), typeLong);
fieldClass = z_class(L"java/lang/reflect/Field");
- fieldClassInit = z_method(0, fieldClass, J3Cst::initName,
- L"(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;IILjava/lang/String;[B)V");
+ fieldClassInit = z_method(0, fieldClass, initName,
+ names()->get(L"(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;IILjava/lang/String;[B)V"));
fieldClassClass = z_field(0, fieldClass, L"clazz", classClass);
fieldClassSlot = z_field(0, fieldClass, L"slot", typeInteger);
#if 0
@@ -251,9 +253,7 @@ void J3::printStackTrace() {
}
void J3::forceSymbolDefinition() {
- J3Value val;
J3ArrayObject a; a.length(); /* J3ArrayObject */
- printf("---> %p\n", &val.valFloat);
J3LockRecord* l = new J3LockRecord(); /* J3LockRecord */
try {
throw (void*)0;
Modified: vmkit/branches/mcjit/lib/j3/vm/j3class.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3class.cc?rev=198289&r1=198288&r2=198289&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3class.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3class.cc Wed Jan 1 18:02:15 2014
@@ -362,14 +362,6 @@ J3Field* J3Class::findStaticField(const
return res;
}
-J3Field* J3Class::findVirtualField(const wchar_t* name, const J3Type* type, bool error) {
- return findVirtualField(loader()->vm()->names()->get(name), type, error);
-}
-
-J3Field* J3Class::findStaticField(const wchar_t* name, const J3Type* type, bool error) {
- return findStaticField(loader()->vm()->names()->get(name), type, error);
-}
-
void J3Class::registerNative(const vmkit::Name* methName, const vmkit::Name* methSign, void* fnPtr) {
resolve();
J3Method* res = staticLayout()->findMethod(methName, methSign);
@@ -406,7 +398,7 @@ void J3Class::doInitialise() {
for(size_t i=0; i<staticLayout()->nbFields(); i++) {
J3Field* cur = staticLayout()->fields() + i;
- J3Attribute* attr = cur->attributes()->lookup(loader()->vm()->constantValueAttr);
+ J3Attribute* attr = cur->attributes()->lookup(loader()->vm()->constantValueAttribute);
if(attr) {
J3Reader reader(bytes());
Modified: vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc?rev=198289&r1=198288&r2=198289&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Wed Jan 1 18:02:15 2014
@@ -1529,7 +1529,7 @@ void J3CodeGen::explore() {
#endif
void J3CodeGen::generateJava() {
- J3Attribute* attr = method->attributes()->lookup(vm->codeAttr);
+ J3Attribute* attr = method->attributes()->lookup(vm->codeAttribute);
if(!attr)
J3::classFormatError(cl, L"No Code attribute in %ls %ls", method->name()->cStr(), method->sign()->cStr());
Modified: vmkit/branches/mcjit/lib/j3/vm/j3constants.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3constants.cc?rev=198289&r1=198288&r2=198289&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3constants.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3constants.cc Wed Jan 1 18:02:15 2014
@@ -8,12 +8,6 @@
using namespace j3;
-wchar_t J3Cst::codeAttr[] = L"Code";
-wchar_t J3Cst::constantValueAttr[] = L"ConstantValue";
-
-wchar_t J3Cst::clinitName[] = L"<clinit>";
-wchar_t J3Cst::clinitSign[] = L"()V";
-wchar_t J3Cst::initName[] = L"<init>";
char J3Cst::nativePrefix[] = "Java_";
const vmkit::Name* J3Cst::rewrite(J3* vm, const vmkit::Name* clName, const vmkit::Name* orig) {
More information about the vmkit-commits
mailing list