comparison src/cpu/sparc/vm/stubGenerator_sparc.cpp @ 1655:e7ec8cd4dd8a

6962569: assembler_sparc.cpp:1969: assert(false) failed: error Summary: array_overlap_test() fails when the address range crosses the MSB boundary. Thanks to Tom and Vladimir for their help on this one. Reviewed-by: kvn, never, iveresov
author tonyp
date Mon, 28 Jun 2010 14:13:18 -0400
parents e9ff18c4ace7
children d6f45b55c972
comparison
equal deleted inserted replaced
1638:b2a00dd3117c 1655:e7ec8cd4dd8a
1005 __ brx(Assembler::lessEqualUnsigned, false, Assembler::pt, no_overlap_target); 1005 __ brx(Assembler::lessEqualUnsigned, false, Assembler::pt, no_overlap_target);
1006 else 1006 else
1007 __ brx(Assembler::lessEqualUnsigned, false, Assembler::pt, (*NOLp)); 1007 __ brx(Assembler::lessEqualUnsigned, false, Assembler::pt, (*NOLp));
1008 __ delayed()->cmp(to_from, byte_count); 1008 __ delayed()->cmp(to_from, byte_count);
1009 if (NOLp == NULL) 1009 if (NOLp == NULL)
1010 __ brx(Assembler::greaterEqual, false, Assembler::pt, no_overlap_target); 1010 __ brx(Assembler::greaterEqualUnsigned, false, Assembler::pt, no_overlap_target);
1011 else 1011 else
1012 __ brx(Assembler::greaterEqual, false, Assembler::pt, (*NOLp)); 1012 __ brx(Assembler::greaterEqualUnsigned, false, Assembler::pt, (*NOLp));
1013 __ delayed()->nop(); 1013 __ delayed()->nop();
1014 } 1014 }
1015 1015
1016 // 1016 //
1017 // Generate pre-write barrier for array. 1017 // Generate pre-write barrier for array.