equal
deleted
inserted
replaced
66 |
66 |
67 ValueStack* copy() { return new ValueStack(this, _kind, _bci); } |
67 ValueStack* copy() { return new ValueStack(this, _kind, _bci); } |
68 ValueStack* copy(Kind new_kind, int new_bci) { return new ValueStack(this, new_kind, new_bci); } |
68 ValueStack* copy(Kind new_kind, int new_bci) { return new ValueStack(this, new_kind, new_bci); } |
69 ValueStack* copy_for_parsing() { return new ValueStack(this, Parsing, -99); } |
69 ValueStack* copy_for_parsing() { return new ValueStack(this, Parsing, -99); } |
70 |
70 |
71 void set_caller_state(ValueStack* s) { assert(kind() == EmptyExceptionState, "only EmptyExceptionStates can be modified"); _caller_state = s; } |
71 void set_caller_state(ValueStack* s) { |
|
72 assert(kind() == EmptyExceptionState || |
|
73 (Compilation::current()->env()->jvmti_can_access_local_variables() && kind() == ExceptionState), |
|
74 "only EmptyExceptionStates can be modified"); |
|
75 _caller_state = s; |
|
76 } |
72 |
77 |
73 bool is_same(ValueStack* s); // returns true if this & s's types match (w/o checking locals) |
78 bool is_same(ValueStack* s); // returns true if this & s's types match (w/o checking locals) |
74 |
79 |
75 // accessors |
80 // accessors |
76 IRScope* scope() const { return _scope; } |
81 IRScope* scope() const { return _scope; } |