Mercurial > hg > truffle
diff src/cpu/x86/vm/x86_64.ad @ 186:cf1821c649d9
Merge
author | never |
---|---|
date | Fri, 06 Jun 2008 14:34:24 -0700 |
parents | 44abbb0d4c18 |
children | d1605aabd0a1 1e026f8da827 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/x86_64.ad Fri Jun 06 13:43:36 2008 -0400 +++ b/src/cpu/x86/vm/x86_64.ad Fri Jun 06 14:34:24 2008 -0700 @@ -6149,7 +6149,7 @@ match(Set dst (LoadNKlass mem)); ins_cost(125); // XXX - format %{ "movl $dst, $mem\t# compressed klass ptr\n\t" %} + format %{ "movl $dst, $mem\t# compressed klass ptr" %} ins_encode %{ Address addr = build_address($mem$$base, $mem$$index, $mem$$scale, $mem$$disp); Register dst = as_Register($dst$$reg); @@ -7089,7 +7089,8 @@ %} instruct decodeHeapOop(rRegP dst, rRegN src, rFlagsReg cr) %{ - predicate(n->bottom_type()->is_oopptr()->ptr() != TypePtr::NotNull); + predicate(n->bottom_type()->is_oopptr()->ptr() != TypePtr::NotNull && + n->bottom_type()->is_oopptr()->ptr() != TypePtr::Constant); match(Set dst (DecodeN src)); effect(KILL cr); format %{ "decode_heap_oop $dst,$src" %} @@ -7105,7 +7106,8 @@ %} instruct decodeHeapOop_not_null(rRegP dst, rRegN src) %{ - predicate(n->bottom_type()->is_oopptr()->ptr() == TypePtr::NotNull); + predicate(n->bottom_type()->is_oopptr()->ptr() == TypePtr::NotNull || + n->bottom_type()->is_oopptr()->ptr() == TypePtr::Constant); match(Set dst (DecodeN src)); format %{ "decode_heap_oop_not_null $dst,$src" %} ins_encode %{