Mercurial > hg > truffle
comparison src/share/vm/opto/parse1.cpp @ 164:c436414a719e
6703890: Compressed Oops: add LoadNKlass node to generate narrow oops (32-bits) compare instructions
Summary: Add LoadNKlass and CMoveN nodes, use CmpN and ConN nodes to generate narrow oops compare instructions.
Reviewed-by: never, rasbold
author | kvn |
---|---|
date | Wed, 21 May 2008 13:46:23 -0700 |
parents | b789bcaf2dd9 |
children | d1605aabd0a1 |
comparison
equal
deleted
inserted
replaced
163:885ed790ecf0 | 164:c436414a719e |
---|---|
1899 | 1899 |
1900 // Insert a dynamic test for whether the instance needs | 1900 // Insert a dynamic test for whether the instance needs |
1901 // finalization. In general this will fold up since the concrete | 1901 // finalization. In general this will fold up since the concrete |
1902 // class is often visible so the access flags are constant. | 1902 // class is often visible so the access flags are constant. |
1903 Node* klass_addr = basic_plus_adr( receiver, receiver, oopDesc::klass_offset_in_bytes() ); | 1903 Node* klass_addr = basic_plus_adr( receiver, receiver, oopDesc::klass_offset_in_bytes() ); |
1904 Node* klass = _gvn.transform(new (C, 3) LoadKlassNode(NULL, immutable_memory(), klass_addr, TypeInstPtr::KLASS)); | 1904 Node* klass = _gvn.transform( LoadKlassNode::make(_gvn, immutable_memory(), klass_addr, TypeInstPtr::KLASS) ); |
1905 | 1905 |
1906 Node* access_flags_addr = basic_plus_adr(klass, klass, Klass::access_flags_offset_in_bytes() + sizeof(oopDesc)); | 1906 Node* access_flags_addr = basic_plus_adr(klass, klass, Klass::access_flags_offset_in_bytes() + sizeof(oopDesc)); |
1907 Node* access_flags = make_load(NULL, access_flags_addr, TypeInt::INT, T_INT); | 1907 Node* access_flags = make_load(NULL, access_flags_addr, TypeInt::INT, T_INT); |
1908 | 1908 |
1909 Node* mask = _gvn.transform(new (C, 3) AndINode(access_flags, intcon(JVM_ACC_HAS_FINALIZER))); | 1909 Node* mask = _gvn.transform(new (C, 3) AndINode(access_flags, intcon(JVM_ACC_HAS_FINALIZER))); |