Mercurial > hg > graal-jvmci-8
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. |