Mercurial > hg > graal-compiler
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())) { |