comparison src/share/vm/runtime/vframeArray.hpp @ 900:9987d9d5eb0e

6833129: specjvm98 fails with NullPointerException in the compiler with -XX:DeoptimizeALot Summary: developed a reexecute logic for the interpreter to reexecute the bytecode when deopt happens Reviewed-by: kvn, never, jrose, twisti
author cfang
date Fri, 31 Jul 2009 17:12:33 -0700
parents a61af66fc99e
children 89e0543e1737
comparison
equal deleted inserted replaced
899:55cb84cd1247 900:9987d9d5eb0e
39 39
40 class vframeArrayElement : public _ValueObj { 40 class vframeArrayElement : public _ValueObj {
41 private: 41 private:
42 42
43 frame _frame; // the interpreter frame we will unpack into 43 frame _frame; // the interpreter frame we will unpack into
44 int _bci; // raw bci for this vframe 44 int _bci; // raw bci for this vframe
45 bool _reexecute; // whether sould we reexecute this bytecode
45 methodOop _method; // the method for this vframe 46 methodOop _method; // the method for this vframe
46 MonitorChunk* _monitors; // active monitors for this vframe 47 MonitorChunk* _monitors; // active monitors for this vframe
47 StackValueCollection* _locals; 48 StackValueCollection* _locals;
48 StackValueCollection* _expressions; 49 StackValueCollection* _expressions;
49 50
52 frame* iframe(void) { return &_frame; } 53 frame* iframe(void) { return &_frame; }
53 54
54 int bci(void) const; 55 int bci(void) const;
55 56
56 int raw_bci(void) const { return _bci; } 57 int raw_bci(void) const { return _bci; }
58 bool should_reexecute(void) const { return _reexecute; }
57 59
58 methodOop method(void) const { return _method; } 60 methodOop method(void) const { return _method; }
59 61
60 MonitorChunk* monitors(void) const { return _monitors; } 62 MonitorChunk* monitors(void) const { return _monitors; }
61 63