1.1 --- a/src/share/vm/opto/connode.hpp Sat Mar 22 00:26:48 2014 +0400 1.2 +++ b/src/share/vm/opto/connode.hpp Thu Mar 20 17:49:27 2014 -0700 1.3 @@ -642,6 +642,19 @@ 1.4 virtual const Type *bottom_type() const { return TypeInt::INT; } 1.5 }; 1.6 1.7 +//------------------------------Opaque3Node------------------------------------ 1.8 +// A node to prevent unwanted optimizations. Will be optimized only during 1.9 +// macro nodes expansion. 1.10 +class Opaque3Node : public Opaque2Node { 1.11 + int _opt; // what optimization it was used for 1.12 +public: 1.13 + enum { RTM_OPT }; 1.14 + Opaque3Node(Compile* C, Node *n, int opt) : Opaque2Node(C, n), _opt(opt) {} 1.15 + virtual int Opcode() const; 1.16 + bool rtm_opt() const { return (_opt == RTM_OPT); } 1.17 +}; 1.18 + 1.19 + 1.20 //----------------------PartialSubtypeCheckNode-------------------------------- 1.21 // The 2nd slow-half of a subtype check. Scan the subklass's 2ndary superklass 1.22 // array for an instance of the superklass. Set a hidden internal cache on a