1.1 --- a/src/cpu/sparc/vm/sparc.ad Wed Jun 04 21:56:27 2008 -0700 1.2 +++ b/src/cpu/sparc/vm/sparc.ad Thu Jun 05 13:02:51 2008 -0700 1.3 @@ -5975,7 +5975,8 @@ 1.4 %} 1.5 1.6 instruct decodeHeapOop(iRegP dst, iRegN src) %{ 1.7 - predicate(n->bottom_type()->is_oopptr()->ptr() != TypePtr::NotNull); 1.8 + predicate(n->bottom_type()->is_oopptr()->ptr() != TypePtr::NotNull && 1.9 + n->bottom_type()->is_oopptr()->ptr() != TypePtr::Constant); 1.10 match(Set dst (DecodeN src)); 1.11 format %{ "decode_heap_oop $src, $dst" %} 1.12 ins_encode %{ 1.13 @@ -5985,7 +5986,8 @@ 1.14 %} 1.15 1.16 instruct decodeHeapOop_not_null(iRegP dst, iRegN src) %{ 1.17 - predicate(n->bottom_type()->is_oopptr()->ptr() == TypePtr::NotNull); 1.18 + predicate(n->bottom_type()->is_oopptr()->ptr() == TypePtr::NotNull || 1.19 + n->bottom_type()->is_oopptr()->ptr() == TypePtr::Constant); 1.20 match(Set dst (DecodeN src)); 1.21 format %{ "decode_heap_oop_not_null $src, $dst" %} 1.22 ins_encode %{