comparison graal/GraalCompiler/src/com/sun/c1x/ir/Invoke.java @ 2828:d6f3dbb4e3b5

merge
author Lukas Stadler <lukas.stadler@jku.at>
date Mon, 30 May 2011 18:47:33 +0200
parents bd17ac598c6e 9ba6a8abe894
children 27c00b180416
comparison
equal deleted inserted replaced
2827:bd17ac598c6e 2828:d6f3dbb4e3b5
79 } 79 }
80 80
81 public final int opcode; 81 public final int opcode;
82 public final RiMethod target; 82 public final RiMethod target;
83 public final RiType returnType; 83 public final RiType returnType;
84 public final int bci; // XXX needed because we can not compute the bci from the sateBefore bci of this Invoke was optimized from INVOKEINTERFACE to INVOKESPECIAL
84 85
85 /** 86 /**
86 * Constructs a new Invoke instruction. 87 * Constructs a new Invoke instruction.
87 * 88 *
88 * @param opcode the opcode of the invoke 89 * @param opcode the opcode of the invoke
90 * @param args the list of instructions producing arguments to the invocation, including the receiver object 91 * @param args the list of instructions producing arguments to the invocation, including the receiver object
91 * @param isStatic {@code true} if this call is static (no receiver object) 92 * @param isStatic {@code true} if this call is static (no receiver object)
92 * @param target the target method being called 93 * @param target the target method being called
93 * @param stateBefore the state before executing the invocation 94 * @param stateBefore the state before executing the invocation
94 */ 95 */
95 public Invoke(int opcode, CiKind result, Value[] args, RiMethod target, RiType returnType, Graph graph) { 96 public Invoke(int opcode, CiKind result, Value[] args, RiMethod target, RiType returnType, Graph graph, int bci) {
96 super(result, args.length, SUCCESSOR_COUNT, graph); 97 super(result, args.length, SUCCESSOR_COUNT, graph);
97 this.opcode = opcode; 98 this.opcode = opcode;
98 this.target = target; 99 this.target = target;
99 this.returnType = returnType; 100 this.returnType = returnType;
101 this.bci = bci;
100 102
101 this.argumentCount = args.length; 103 this.argumentCount = args.length;
102 for (int i = 0; i < args.length; i++) { 104 for (int i = 0; i < args.length; i++) {
103 setArgument(i, args[i]); 105 setArgument(i, args[i]);
104 } 106 }