src/cpu/sparc/vm/sparc.ad

changeset 617
44abbb0d4c18
parent 616
823298b11afc
child 631
d1605aabd0a1
child 656
1e026f8da827
     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 %{

mercurial