comparison graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SpecializationNode.java @ 20129:5b7db8941fd7

Truffle: make NodeClass and NodeField a top-level class.
author Christian Humer <christian.humer@gmail.com>
date Thu, 02 Apr 2015 01:22:41 +0200
parents 7108d2319169
children 8dc73c226c63
comparison
equal deleted inserted replaced
20128:7ad60a16bbb0 20129:5b7db8941fd7
37 import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEvent4; 37 import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEvent4;
38 import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEvent5; 38 import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEvent5;
39 import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEventN; 39 import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEventN;
40 import com.oracle.truffle.api.frame.*; 40 import com.oracle.truffle.api.frame.*;
41 import com.oracle.truffle.api.nodes.*; 41 import com.oracle.truffle.api.nodes.*;
42 import com.oracle.truffle.api.nodes.NodeUtil.NodeClass; 42 import com.oracle.truffle.api.nodes.NodeFieldAccessor;
43 import com.oracle.truffle.api.nodes.NodeUtil.NodeField;
44 43
45 /** 44 /**
46 * Internal implementation dependent base class for generated specialized nodes. 45 * Internal implementation dependent base class for generated specialized nodes.
47 */ 46 */
48 @NodeInfo(cost = NodeCost.NONE) 47 @NodeInfo(cost = NodeCost.NONE)
78 updateRootImpl(((SpecializedNode) node).getSpecializationNode(), node); 77 updateRootImpl(((SpecializedNode) node).getSpecializationNode(), node);
79 return node; 78 return node;
80 } 79 }
81 80
82 private static void updateRootImpl(SpecializationNode start, Node node) { 81 private static void updateRootImpl(SpecializationNode start, Node node) {
83 NodeField[] fields = NodeClass.get(start.getClass()).getFields(); 82 NodeFieldAccessor[] fields = NodeClass.get(start.getClass()).getFields();
84 for (int i = fields.length - 1; i >= 0; i--) { 83 for (int i = fields.length - 1; i >= 0; i--) {
85 NodeField f = fields[i]; 84 NodeFieldAccessor f = fields[i];
86 if (f.getName().equals("root")) { 85 if (f.getName().equals("root")) {
87 f.putObject(start, node); 86 f.putObject(start, node);
88 break; 87 break;
89 } 88 }
90 } 89 }