src/share/vm/opto/parse1.cpp

changeset 3391
069ab3f976d3
parent 2877
bad7ecd0b6ed
child 3406
e9a5e0a812c8
equal deleted inserted replaced
3390:65149e74c706 3391:069ab3f976d3
1909 // finalization. In general this will fold up since the concrete 1909 // finalization. In general this will fold up since the concrete
1910 // class is often visible so the access flags are constant. 1910 // class is often visible so the access flags are constant.
1911 Node* klass_addr = basic_plus_adr( receiver, receiver, oopDesc::klass_offset_in_bytes() ); 1911 Node* klass_addr = basic_plus_adr( receiver, receiver, oopDesc::klass_offset_in_bytes() );
1912 Node* klass = _gvn.transform( LoadKlassNode::make(_gvn, immutable_memory(), klass_addr, TypeInstPtr::KLASS) ); 1912 Node* klass = _gvn.transform( LoadKlassNode::make(_gvn, immutable_memory(), klass_addr, TypeInstPtr::KLASS) );
1913 1913
1914 Node* access_flags_addr = basic_plus_adr(klass, klass, Klass::access_flags_offset_in_bytes() + sizeof(oopDesc)); 1914 Node* access_flags_addr = basic_plus_adr(klass, klass, in_bytes(Klass::access_flags_offset()));
1915 Node* access_flags = make_load(NULL, access_flags_addr, TypeInt::INT, T_INT); 1915 Node* access_flags = make_load(NULL, access_flags_addr, TypeInt::INT, T_INT);
1916 1916
1917 Node* mask = _gvn.transform(new (C, 3) AndINode(access_flags, intcon(JVM_ACC_HAS_FINALIZER))); 1917 Node* mask = _gvn.transform(new (C, 3) AndINode(access_flags, intcon(JVM_ACC_HAS_FINALIZER)));
1918 Node* check = _gvn.transform(new (C, 3) CmpINode(mask, intcon(0))); 1918 Node* check = _gvn.transform(new (C, 3) CmpINode(mask, intcon(0)));
1919 Node* test = _gvn.transform(new (C, 2) BoolNode(check, BoolTest::ne)); 1919 Node* test = _gvn.transform(new (C, 2) BoolNode(check, BoolTest::ne));

mercurial