comparison src/share/vm/code/pcDesc.hpp @ 3018:5857923e563c

Fixed an issue with frame states in exception dispatch chains (now we are correctly rethrowing the exception immediately at entering the interpreter).
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Sat, 18 Jun 2011 19:13:55 +0200
parents f95d63e2154a
children 04b9a2566eec
comparison
equal deleted inserted replaced
3017:b4ba003eb11d 3018:5857923e563c
41 41
42 union PcDescFlags { 42 union PcDescFlags {
43 int word; 43 int word;
44 struct { 44 struct {
45 unsigned int reexecute: 1; 45 unsigned int reexecute: 1;
46 unsigned int rethrow_exception: 1;
46 unsigned int is_method_handle_invoke: 1; 47 unsigned int is_method_handle_invoke: 1;
47 unsigned int return_oop: 1; 48 unsigned int return_oop: 1;
48 } bits; 49 } bits;
49 bool operator ==(const PcDescFlags& other) { return word == other.word; } 50 bool operator ==(const PcDescFlags& other) { return word == other.word; }
50 } _flags; 51 } _flags;
69 }; 70 };
70 71
71 // Flags 72 // Flags
72 bool should_reexecute() const { return _flags.bits.reexecute; } 73 bool should_reexecute() const { return _flags.bits.reexecute; }
73 void set_should_reexecute(bool z) { _flags.bits.reexecute = z; } 74 void set_should_reexecute(bool z) { _flags.bits.reexecute = z; }
75 bool rethrow_exception() const { return _flags.bits.rethrow_exception; }
76 void set_rethrow_exception(bool z) { _flags.bits.rethrow_exception = z; }
74 77
75 // Does pd refer to the same information as pd? 78 // Does pd refer to the same information as pd?
76 bool is_same_info(const PcDesc* pd) { 79 bool is_same_info(const PcDesc* pd) {
77 return _scope_decode_offset == pd->_scope_decode_offset && 80 return _scope_decode_offset == pd->_scope_decode_offset &&
78 _obj_decode_offset == pd->_obj_decode_offset && 81 _obj_decode_offset == pd->_obj_decode_offset &&