comparison graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/StubForeignCallNode.java @ 11959:23ccaa863eda

made CodeCacheProvider independent of MetaAccessProvider (GRAAL-511)
author Doug Simon <doug.simon@oracle.com>
date Thu, 10 Oct 2013 16:14:55 +0200
parents 70f43f67cdcb
children 0fc653a9e019
comparison
equal deleted inserted replaced
11958:a0f5be106e67 11959:23ccaa863eda
39 @Input private final NodeInputList<ValueNode> arguments; 39 @Input private final NodeInputList<ValueNode> arguments;
40 private final MetaAccessProvider runtime; 40 private final MetaAccessProvider runtime;
41 41
42 private final ForeignCallDescriptor descriptor; 42 private final ForeignCallDescriptor descriptor;
43 43
44 public StubForeignCallNode(MetaAccessProvider runtime, ForeignCallDescriptor descriptor, ValueNode... arguments) { 44 public StubForeignCallNode(MetaAccessProvider metaAccess, ForeignCallDescriptor descriptor, ValueNode... arguments) {
45 super(StampFactory.forKind(Kind.fromJavaClass(descriptor.getResultType()))); 45 super(StampFactory.forKind(Kind.fromJavaClass(descriptor.getResultType())));
46 this.arguments = new NodeInputList<>(this, arguments); 46 this.arguments = new NodeInputList<>(this, arguments);
47 this.descriptor = descriptor; 47 this.descriptor = descriptor;
48 this.runtime = runtime; 48 this.runtime = metaAccess;
49 } 49 }
50 50
51 public ForeignCallDescriptor getDescriptor() { 51 public ForeignCallDescriptor getDescriptor() {
52 return descriptor; 52 return descriptor;
53 } 53 }
66 } 66 }
67 67
68 @Override 68 @Override
69 public void generate(LIRGeneratorTool gen) { 69 public void generate(LIRGeneratorTool gen) {
70 assert graph().start() instanceof StubStartNode; 70 assert graph().start() instanceof StubStartNode;
71 ForeignCallLinkage linkage = gen.getRuntime().lookupForeignCall(descriptor); 71 ForeignCallLinkage linkage = gen.getCodeCache().lookupForeignCall(descriptor);
72 Value[] operands = operands(gen); 72 Value[] operands = operands(gen);
73 Value result = gen.emitForeignCall(linkage, null, operands); 73 Value result = gen.emitForeignCall(linkage, null, operands);
74 if (result != null) { 74 if (result != null) {
75 gen.setResult(this, result); 75 gen.setResult(this, result);
76 } 76 }