diff c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotXirGenerator.java @ 1428:695451afc619

refactoring classes into separate files
author Lukas Stadler <lukas.stadler@oracle.com>
date Thu, 19 Aug 2010 14:34:52 -0700
parents 149b1d2316de
children abc670a709dc
line wrap: on
line diff
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotXirGenerator.java	Wed Aug 18 16:47:06 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotXirGenerator.java	Thu Aug 19 14:34:52 2010 -0700
@@ -35,17 +35,17 @@
  */
 public class HotSpotXirGenerator implements RiXirGenerator {
 
-    // this needs to correspond to c1x_Compiler.hpp
-    private static final Integer MARK_VERIFIED_ENTRY = 1;
-    private static final Integer MARK_UNVERIFIED_ENTRY = 2;
-    private static final Integer MARK_OSR_ENTRY = 3;
-    private static final Integer MARK_STATIC_CALL_STUB = 1000;
-
-    private static final Integer MARK_INVOKE_INVALID = 2000;
-    private static final Integer MARK_INVOKEINTERFACE = 2001;
-    private static final Integer MARK_INVOKESTATIC = 2002;
-    private static final Integer MARK_INVOKESPECIAL = 2003;
-    private static final Integer MARK_INVOKEVIRTUAL = 2004;
+    // this needs to correspond to c1x_CodeInstaller.hpp
+    private static final Integer MARK_VERIFIED_ENTRY = 0x0001;
+    private static final Integer MARK_UNVERIFIED_ENTRY = 0x0002;
+    private static final Integer MARK_OSR_ENTRY = 0x0003;
+    private static final Integer MARK_STATIC_CALL_STUB = 0x1000;
+    private static final Integer MARK_INVOKE_INVALID = 0x2000;
+    private static final Integer MARK_INVOKEINTERFACE = 0x2001;
+    private static final Integer MARK_INVOKESTATIC = 0x2002;
+    private static final Integer MARK_INVOKESPECIAL = 0x2003;
+    private static final Integer MARK_INVOKEVIRTUAL = 0x2004;
+    private static final Integer MARK_IMPLICIT_NULL_EXCEPTION_TARGET = 0x3000;
 
     private final HotSpotVMConfig config;
     private final CiTarget target;
@@ -447,6 +447,9 @@
         asm.jmp(dummy);
         asm.bindOutOfLine(dummy);
 
+        asm.mark(MARK_IMPLICIT_NULL_EXCEPTION_TARGET, XirMark.CALLSITE);
+        asm.callRuntime(config.throwImplicitNullStub, null);
+
         return asm.finishTemplate(addr, "invokespecial");
     }