diff c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotSignature.java @ 1422:3483ec571caf

* using reflected objects instead of oops * removed scratch from allocatable registers * instanceof xir snippet * arraylength xir snippet * exceptionobject xir snippet * VMEntries and VMExits as interfaces * calls to VMEntries and VMExits are routet through logging proxies
author Lukas Stadler <lukas.stadler@oracle.com>
date Mon, 02 Aug 2010 15:44:38 -0700
parents 6223633ce7dd
children 760213a60e8b
line wrap: on
line diff
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotSignature.java	Fri Jul 23 15:53:02 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotSignature.java	Mon Aug 02 15:44:38 2010 -0700
@@ -14,7 +14,6 @@
     private final String originalString;
 
     public HotSpotSignature(String signature) {
-
         assert signature.length() > 0;
         this.originalString = signature;
 
@@ -25,6 +24,11 @@
                 arguments.add(signature.substring(cur, nextCur));
                 cur = nextCur;
             }
+            StringBuilder str = new StringBuilder();
+            for (String param : arguments) {
+                str.append(param).append(", ");
+            }
+            Logger.log("signature " + signature + ": " + str);
 
             cur++;
             int nextCur = parseSignature(signature, cur);
@@ -39,16 +43,13 @@
 
         char first = signature.charAt(cur);
         switch (first) {
-
             case '[':
                 return parseSignature(signature, cur + 1);
-
             case 'L':
                 while (signature.charAt(cur) != ';')
                     cur++;
                 cur++;
                 break;
-
             case 'V':
             case 'I':
             case 'B':
@@ -60,12 +61,9 @@
             case 'Z':
                 cur++;
                 break;
-
             default:
                 assert false;
-
         }
-
         return cur;
     }
 
@@ -94,10 +92,9 @@
 
     @Override
     public RiType argumentTypeAt(int index, RiType accessingClass) {
-        System.out.println("argument type at " + index);
-        Object accessor = null;
+        Class<?> accessor = null;
         if (accessingClass instanceof HotSpotType) {
-            accessor = ((HotSpotType) accessingClass).klassOop;
+            accessor = ((HotSpotType) accessingClass).klass;
         }
         return Compiler.getVMEntries().RiSignature_lookupType(arguments.get(index), accessor);
     }
@@ -114,7 +111,11 @@
 
     @Override
     public RiType returnType(RiType accessingClass) {
-        return Compiler.getVMEntries().RiSignature_lookupType(returnType, accessingClass);
+        Class<?> accessor = null;
+        if (accessingClass instanceof HotSpotType) {
+            accessor = ((HotSpotType) accessingClass).klass;
+        }
+        return Compiler.getVMEntries().RiSignature_lookupType(returnType, accessor);
     }
 
 }