1.1 --- a/src/cpu/x86/vm/x86_64.ad Wed Jun 04 21:56:27 2008 -0700 1.2 +++ b/src/cpu/x86/vm/x86_64.ad Thu Jun 05 13:02:51 2008 -0700 1.3 @@ -6149,7 +6149,7 @@ 1.4 match(Set dst (LoadNKlass mem)); 1.5 1.6 ins_cost(125); // XXX 1.7 - format %{ "movl $dst, $mem\t# compressed klass ptr\n\t" %} 1.8 + format %{ "movl $dst, $mem\t# compressed klass ptr" %} 1.9 ins_encode %{ 1.10 Address addr = build_address($mem$$base, $mem$$index, $mem$$scale, $mem$$disp); 1.11 Register dst = as_Register($dst$$reg); 1.12 @@ -7089,7 +7089,8 @@ 1.13 %} 1.14 1.15 instruct decodeHeapOop(rRegP dst, rRegN src, rFlagsReg cr) %{ 1.16 - predicate(n->bottom_type()->is_oopptr()->ptr() != TypePtr::NotNull); 1.17 + predicate(n->bottom_type()->is_oopptr()->ptr() != TypePtr::NotNull && 1.18 + n->bottom_type()->is_oopptr()->ptr() != TypePtr::Constant); 1.19 match(Set dst (DecodeN src)); 1.20 effect(KILL cr); 1.21 format %{ "decode_heap_oop $dst,$src" %} 1.22 @@ -7105,7 +7106,8 @@ 1.23 %} 1.24 1.25 instruct decodeHeapOop_not_null(rRegP dst, rRegN src) %{ 1.26 - predicate(n->bottom_type()->is_oopptr()->ptr() == TypePtr::NotNull); 1.27 + predicate(n->bottom_type()->is_oopptr()->ptr() == TypePtr::NotNull || 1.28 + n->bottom_type()->is_oopptr()->ptr() == TypePtr::Constant); 1.29 match(Set dst (DecodeN src)); 1.30 format %{ "decode_heap_oop_not_null $dst,$src" %} 1.31 ins_encode %{