hotspot/src/cpu/x86/vm/assembler_x86.cpp
changeset 4019 6d6674c9e7d7
parent 3905 7d725029ac85
child 4430 95b539dfa1e8
child 4102 11d514e508d9
equal deleted inserted replaced
4018:a73b8aa8e89d 4019:6d6674c9e7d7
  8632   cmpptr(ary1, ary2);
  8632   cmpptr(ary1, ary2);
  8633   jcc(Assembler::equal, TRUE_LABEL);
  8633   jcc(Assembler::equal, TRUE_LABEL);
  8634 
  8634 
  8635   if (is_array_equ) {
  8635   if (is_array_equ) {
  8636     // Need additional checks for arrays_equals.
  8636     // Need additional checks for arrays_equals.
  8637     andptr(ary1, ary2);
  8637     testptr(ary1, ary1);
  8638     jcc(Assembler::zero, FALSE_LABEL); // One pointer is NULL
  8638     jcc(Assembler::zero, FALSE_LABEL);
       
  8639     testptr(ary2, ary2);
       
  8640     jcc(Assembler::zero, FALSE_LABEL);
  8639 
  8641 
  8640     // Check the lengths
  8642     // Check the lengths
  8641     movl(limit, Address(ary1, length_offset));
  8643     movl(limit, Address(ary1, length_offset));
  8642     cmpl(limit, Address(ary2, length_offset));
  8644     cmpl(limit, Address(ary2, length_offset));
  8643     jcc(Assembler::notEqual, FALSE_LABEL);
  8645     jcc(Assembler::notEqual, FALSE_LABEL);