changeset 16442:a6c3ea7ac369

let ForeignStubCallNode kill PENDING_EXCEPTION_LOCATION
author Lukas Stadler <lukas.stadler@oracle.com>
date Tue, 08 Jul 2014 16:17:13 +0200
parents 0de9f76a4b3d
children e941121f096f
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/StubForeignCallNode.java
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/StubForeignCallNode.java	Tue Jul 08 16:14:09 2014 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/StubForeignCallNode.java	Tue Jul 08 16:17:13 2014 +0200
@@ -22,10 +22,13 @@
  */
 package com.oracle.graal.hotspot.nodes;
 
+import java.util.*;
+
 import com.oracle.graal.api.code.*;
 import com.oracle.graal.api.meta.*;
 import com.oracle.graal.compiler.common.type.*;
 import com.oracle.graal.graph.*;
+import com.oracle.graal.hotspot.replacements.*;
 import com.oracle.graal.nodes.*;
 import com.oracle.graal.nodes.extended.*;
 import com.oracle.graal.nodes.spi.*;
@@ -54,7 +57,10 @@
 
     @Override
     public LocationIdentity[] getLocationIdentities() {
-        return foreignCalls.getKilledLocations(descriptor);
+        LocationIdentity[] killedLocations = foreignCalls.getKilledLocations(descriptor);
+        killedLocations = Arrays.copyOf(killedLocations, killedLocations.length + 1);
+        killedLocations[killedLocations.length - 1] = HotSpotReplacementsUtil.PENDING_EXCEPTION_LOCATION;
+        return killedLocations;
     }
 
     protected Value[] operands(NodeLIRBuilderTool gen) {