src/cpu/x86/vm/x86_64.ad

changeset 617
44abbb0d4c18
parent 604
9148c65abefc
child 631
d1605aabd0a1
child 656
1e026f8da827
     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 %{

mercurial