comparison graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiFrame.java @ 4678:a03f3fd16b22

Fix reexecute boolean in HotSpot debug information. Introduce "duringCall" flag in FrameState that indicates that the bci of the frame state denotes an invoke that should *not* be reexecuted.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Thu, 23 Feb 2012 21:43:59 +0100
parents aaac4894175c
children 51111665eda6
comparison
equal deleted inserted replaced
4677:74c0b866fe8d 4678:a03f3fd16b22
65 */ 65 */
66 public final int numLocks; 66 public final int numLocks;
67 67
68 public final boolean rethrowException; 68 public final boolean rethrowException;
69 69
70 public final boolean duringCall;
71
70 /** 72 /**
71 * Creates a new frame object. 73 * Creates a new frame object.
72 * 74 *
73 * @param caller the caller frame (which may be {@code null}) 75 * @param caller the caller frame (which may be {@code null})
74 * @param method the method 76 * @param method the method
77 * @param values the frame state {@link #values} 79 * @param values the frame state {@link #values}
78 * @param numLocals the number of local variables 80 * @param numLocals the number of local variables
79 * @param numStack the depth of the stack 81 * @param numStack the depth of the stack
80 * @param numLocks the number of locked objects 82 * @param numLocks the number of locked objects
81 */ 83 */
82 public CiFrame(CiFrame caller, RiResolvedMethod method, int bci, boolean rethrowException, CiValue[] values, int numLocals, int numStack, int numLocks) { 84 public CiFrame(CiFrame caller, RiResolvedMethod method, int bci, boolean rethrowException, boolean duringCall, CiValue[] values, int numLocals, int numStack, int numLocks) {
83 super(caller, method, bci); 85 super(caller, method, bci);
84 assert values != null; 86 assert values != null;
85 this.rethrowException = rethrowException; 87 this.rethrowException = rethrowException;
86 this.values = values; 88 this.values = values;
87 this.numLocks = numLocks; 89 this.numLocks = numLocks;
88 this.numLocals = numLocals; 90 this.numLocals = numLocals;
89 this.numStack = numStack; 91 this.numStack = numStack;
92 this.duringCall = duringCall;
90 assert !rethrowException || numStack == 1 : "must have exception on top of the stack"; 93 assert !rethrowException || numStack == 1 : "must have exception on top of the stack";
91 } 94 }
92 95
93 /** 96 /**
94 * Gets the value representing the specified local variable. 97 * Gets the value representing the specified local variable.