src/cpu/x86/vm/x86_64.ad

changeset 670
9c2ecc2ffb12
parent 631
d1605aabd0a1
parent 656
1e026f8da827
child 739
dc7f315e41f7
equal deleted inserted replaced
632:de141433919f 670:9c2ecc2ffb12
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;

mercurial