Mercurial > hg > truffle
comparison src/cpu/sparc/vm/sparc.ad @ 1016:d40f03b57795
6890984: Comparison of 2 arrays could cause VM crash
Summary: Restore original null checks.
Reviewed-by: never, cfang
author | kvn |
---|---|
date | Wed, 14 Oct 2009 15:03:32 -0700 |
parents | 1ce3281a8e93 |
children | f875b4f472f7 |
comparison
equal
deleted
inserted
replaced
1015:23862fc517bb | 1016:d40f03b57795 |
---|---|
3014 int length_offset = arrayOopDesc::length_offset_in_bytes(); | 3014 int length_offset = arrayOopDesc::length_offset_in_bytes(); |
3015 int base_offset = arrayOopDesc::base_offset_in_bytes(T_CHAR); | 3015 int base_offset = arrayOopDesc::base_offset_in_bytes(T_CHAR); |
3016 | 3016 |
3017 // return true if the same array | 3017 // return true if the same array |
3018 __ cmp(ary1_reg, ary2_reg); | 3018 __ cmp(ary1_reg, ary2_reg); |
3019 __ br(Assembler::equal, true, Assembler::pn, Ldone); | 3019 __ brx(Assembler::equal, true, Assembler::pn, Ldone); |
3020 __ delayed()->add(G0, 1, result_reg); // equal | 3020 __ delayed()->add(G0, 1, result_reg); // equal |
3021 | 3021 |
3022 __ br_null(ary1_reg, true, Assembler::pn, Ldone); | 3022 __ br_null(ary1_reg, true, Assembler::pn, Ldone); |
3023 __ delayed()->mov(G0, result_reg); // not equal | 3023 __ delayed()->mov(G0, result_reg); // not equal |
3024 | 3024 |