comparison graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/TailcallNode.java @ 15311:820c6d353358

added ModifiersProvider as superinterface for ResolvedJava[Method|Field|Type] and implemented all checks against modifiers as default methods
author Doug Simon <doug.simon@oracle.com>
date Wed, 23 Apr 2014 12:38:05 +0200
parents a38d791982e1
children c260582ba074
comparison
equal deleted inserted replaced
15310:dc2dd913c47e 15311:820c6d353358
22 */ 22 */
23 package com.oracle.graal.hotspot.nodes; 23 package com.oracle.graal.hotspot.nodes;
24 24
25 import static com.oracle.graal.hotspot.HotSpotGraalRuntime.*; 25 import static com.oracle.graal.hotspot.HotSpotGraalRuntime.*;
26 26
27 import java.lang.reflect.*;
28 import java.util.*; 27 import java.util.*;
29 28
30 import com.oracle.graal.api.code.*; 29 import com.oracle.graal.api.code.*;
31 import com.oracle.graal.api.meta.*; 30 import com.oracle.graal.api.meta.*;
32 import com.oracle.graal.compiler.common.type.*; 31 import com.oracle.graal.compiler.common.type.*;
60 } 59 }
61 60
62 public void generate(NodeLIRBuilderTool gen, LIRGenerationResult res) { 61 public void generate(NodeLIRBuilderTool gen, LIRGenerationResult res) {
63 HotSpotVMConfig config = runtime().getConfig(); 62 HotSpotVMConfig config = runtime().getConfig();
64 ResolvedJavaMethod method = frameState.method(); 63 ResolvedJavaMethod method = frameState.method();
65 boolean isStatic = Modifier.isStatic(method.getModifiers()); 64 boolean isStatic = method.isStatic();
66 65
67 JavaType[] signature = MetaUtil.signatureToTypes(method.getSignature(), isStatic ? null : method.getDeclaringClass()); 66 JavaType[] signature = MetaUtil.signatureToTypes(method.getSignature(), isStatic ? null : method.getDeclaringClass());
68 CallingConvention cc = res.getFrameMap().registerConfig.getCallingConvention(CallingConvention.Type.JavaCall, null, signature, gen.getLIRGeneratorTool().target(), false); 67 CallingConvention cc = res.getFrameMap().registerConfig.getCallingConvention(CallingConvention.Type.JavaCall, null, signature, gen.getLIRGeneratorTool().target(), false);
69 List<ValueNode> parameters = new ArrayList<>(); 68 List<ValueNode> parameters = new ArrayList<>();
70 for (int i = 0, slot = 0; i < cc.getArgumentCount(); i++, slot += HIRFrameStateBuilder.stackSlots(frameState.localAt(slot).getKind())) { 69 for (int i = 0, slot = 0; i < cc.getArgumentCount(); i++, slot += HIRFrameStateBuilder.stackSlots(frameState.localAt(slot).getKind())) {