Looks good!<br><br><div class="gmail_quote">On Thu, Oct 27, 2011 at 3:56 AM, Will Dietz <span dir="ltr"><<a href="mailto:wdietz2@illinois.edu">wdietz2@illinois.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Inlined below.<br>
<br>
~Will<br>
<br>
<br>
>From e25a607974c98c8c01107ac3a72b666160f0023c Mon Sep 17 00:00:00 2001<br>
From: Will Dietz <<a href="mailto:w@wdtz.org">w@wdtz.org</a>><br>
Date: Wed, 26 Oct 2011 20:52:26 -0500<br>
Subject: [PATCH 1/3] OpenJDK.inc: Implement JVM_FindPrimitiveClass<br>
<br>
---<br>
 lib/J3/ClassLib/OpenJDK/OpenJDK.inc |   43 ++++++++++++++++++++++++++++++++++-<br>
 1 files changed, 42 insertions(+), 1 deletions(-)<br>
<br>
diff --git a/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
b/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
index e5690a5..2380abd 100644<br>
--- a/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
+++ b/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
@@ -549,9 +549,50 @@ JVM_GetCallerClass(JNIEnv *env, int n) {<br>
  * utf: class name<br>
  */<br>
<br>
+<br>
+const struct {<br>
+  const char * name;<br>
+  char id;<br>
+} static PrimMap[] = {<br>
+  { "boolean", 'Z' },<br>
+  { "byte"   , 'B' },<br>
+  { "char"   , 'C' },<br>
+  { "short"  , 'S' },<br>
+  { "int"    , 'I' },<br>
+  { "long"   , 'J' },<br>
+  { "float"  , 'F' },<br>
+  { "double" , 'D' },<br>
+  { "void"   , 'V' }<br>
+};<br>
+const static unsigned PrimMapSize = sizeof(PrimMap)/sizeof(PrimMap[0]);<br>
+<br>
 JNIEXPORT jclass JNICALL<br>
 JVM_FindPrimitiveClass(JNIEnv *env, const char *utf) {<br>
-  NYI();<br>
+  JavaObject* res = 0;<br>
+  llvm_gcroot(res, 0);<br>
+<br>
+  BEGIN_JNI_EXCEPTION<br>
+<br>
+  Jnjvm* vm = JavaThread::get()->getJVM();<br>
+<br>
+  UserClassPrimitive * prim =  0;<br>
+  for(unsigned i = 0; i < PrimMapSize; ++i) {<br>
+    if(!strcmp(PrimMap[i].name, utf)) {<br>
+      prim = UserClassPrimitive::byteIdToPrimitive(PrimMap[i].id, vm->upcalls);<br>
+      break;<br>
+    }<br>
+  }<br>
+  if (!prim) {<br>
+    fprintf(stderr, "Unsupported primitive \"%s\"!  Missing table<br>
entry?\n", utf);<br>
+  }<br>
+  assert(prim && "Invalid Primitive in JVM_FindPrimitiveClass");<br>
+<br>
+  res = (JavaObject*)prim->getClassDelegateePtr(vm);<br>
+  RETURN_FROM_JNI((jclass)res);<br>
+<br>
+  END_JNI_EXCEPTION<br>
+<br>
+  return 0;<br>
 }<br>
<br>
 /*<br>
<font color="#888888">--<br>
1.7.5.1<br>
_______________________________________________<br>
vmkit-commits mailing list<br>
<a href="mailto:vmkit-commits@cs.uiuc.edu">vmkit-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/vmkit-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/vmkit-commits</a><br>
</font></blockquote></div><br>