7058 %} |
7058 %} |
7059 |
7059 |
7060 |
7060 |
7061 // Convert oop pointer into compressed form |
7061 // Convert oop pointer into compressed form |
7062 instruct encodeHeapOop(rRegN dst, rRegP src, rFlagsReg cr) %{ |
7062 instruct encodeHeapOop(rRegN dst, rRegP src, rFlagsReg cr) %{ |
7063 predicate(n->bottom_type()->is_narrowoop()->make_oopptr()->ptr() != TypePtr::NotNull); |
7063 predicate(n->bottom_type()->make_ptr()->ptr() != TypePtr::NotNull); |
7064 match(Set dst (EncodeP src)); |
7064 match(Set dst (EncodeP src)); |
7065 effect(KILL cr); |
7065 effect(KILL cr); |
7066 format %{ "encode_heap_oop $dst,$src" %} |
7066 format %{ "encode_heap_oop $dst,$src" %} |
7067 ins_encode %{ |
7067 ins_encode %{ |
7068 Register s = $src$$Register; |
7068 Register s = $src$$Register; |
7074 %} |
7074 %} |
7075 ins_pipe(ialu_reg_long); |
7075 ins_pipe(ialu_reg_long); |
7076 %} |
7076 %} |
7077 |
7077 |
7078 instruct encodeHeapOop_not_null(rRegN dst, rRegP src, rFlagsReg cr) %{ |
7078 instruct encodeHeapOop_not_null(rRegN dst, rRegP src, rFlagsReg cr) %{ |
7079 predicate(n->bottom_type()->is_narrowoop()->make_oopptr()->ptr() == TypePtr::NotNull); |
7079 predicate(n->bottom_type()->make_ptr()->ptr() == TypePtr::NotNull); |
7080 match(Set dst (EncodeP src)); |
7080 match(Set dst (EncodeP src)); |
7081 effect(KILL cr); |
7081 effect(KILL cr); |
7082 format %{ "encode_heap_oop_not_null $dst,$src" %} |
7082 format %{ "encode_heap_oop_not_null $dst,$src" %} |
7083 ins_encode %{ |
7083 ins_encode %{ |
7084 Register s = $src$$Register; |
7084 Register s = $src$$Register; |