comparison src/cpu/sparc/vm/sparc.ad @ 124:b130b98db9cf

6689060: Escape Analysis does not work with Compressed Oops Summary: 64-bits VM crashes with -XX:+AggresiveOpts (Escape Analysis + Compressed Oops) Reviewed-by: never, sgoldman
author kvn
date Wed, 23 Apr 2008 11:20:36 -0700
parents ba764ed4b6f2
children 885ed790ecf0
comparison
equal deleted inserted replaced
123:9e5a7340635e 124:b130b98db9cf
5955 ins_pipe(fstoreD_mem_reg); 5955 ins_pipe(fstoreD_mem_reg);
5956 %} 5956 %}
5957 5957
5958 // Convert oop pointer into compressed form 5958 // Convert oop pointer into compressed form
5959 instruct encodeHeapOop(iRegN dst, iRegP src) %{ 5959 instruct encodeHeapOop(iRegN dst, iRegP src) %{
5960 predicate(n->bottom_type()->is_narrowoop()->make_oopptr()->ptr() != TypePtr::NotNull);
5960 match(Set dst (EncodeP src)); 5961 match(Set dst (EncodeP src));
5961 format %{ "SRL $src,3,$dst\t encodeHeapOop" %} 5962 format %{ "encode_heap_oop $src, $dst" %}
5962 ins_encode %{ 5963 ins_encode %{
5963 __ encode_heap_oop($src$$Register, $dst$$Register); 5964 __ encode_heap_oop($src$$Register, $dst$$Register);
5964 %} 5965 %}
5965 ins_pipe(ialu_reg); 5966 ins_pipe(ialu_reg);
5966 %} 5967 %}
5967 5968
5969 instruct encodeHeapOop_not_null(iRegN dst, iRegP src) %{
5970 predicate(n->bottom_type()->is_narrowoop()->make_oopptr()->ptr() == TypePtr::NotNull);
5971 match(Set dst (EncodeP src));
5972 format %{ "encode_heap_oop_not_null $src, $dst" %}
5973 ins_encode %{
5974 __ encode_heap_oop_not_null($src$$Register, $dst$$Register);
5975 %}
5976 ins_pipe(ialu_reg);
5977 %}
5978
5968 instruct decodeHeapOop(iRegP dst, iRegN src) %{ 5979 instruct decodeHeapOop(iRegP dst, iRegN src) %{
5980 predicate(n->bottom_type()->is_oopptr()->ptr() != TypePtr::NotNull);
5969 match(Set dst (DecodeN src)); 5981 match(Set dst (DecodeN src));
5970 format %{ "decode_heap_oop $src, $dst" %} 5982 format %{ "decode_heap_oop $src, $dst" %}
5971 ins_encode %{ 5983 ins_encode %{
5972 __ decode_heap_oop($src$$Register, $dst$$Register); 5984 __ decode_heap_oop($src$$Register, $dst$$Register);
5985 %}
5986 ins_pipe(ialu_reg);
5987 %}
5988
5989 instruct decodeHeapOop_not_null(iRegP dst, iRegN src) %{
5990 predicate(n->bottom_type()->is_oopptr()->ptr() == TypePtr::NotNull);
5991 match(Set dst (DecodeN src));
5992 format %{ "decode_heap_oop_not_null $src, $dst" %}
5993 ins_encode %{
5994 __ decode_heap_oop_not_null($src$$Register, $dst$$Register);
5973 %} 5995 %}
5974 ins_pipe(ialu_reg); 5996 ins_pipe(ialu_reg);
5975 %} 5997 %}
5976 5998
5977 5999