src/hotspot/cpu/sparc/stubGenerator_sparc.cpp
branchepsilon-gc-branch
changeset 55974 06122633fead
parent 55767 8e22715afabc
parent 48104 62d5973082e3
child 56021 864ee22719af
--- a/src/hotspot/cpu/sparc/stubGenerator_sparc.cpp	Thu Nov 30 18:51:47 2017 +0100
+++ b/src/hotspot/cpu/sparc/stubGenerator_sparc.cpp	Thu Dec 07 13:05:31 2017 +0100
@@ -899,7 +899,9 @@
           assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust this code");
           assert_different_registers(addr, count, tmp);
 
-          Label L_loop;
+          Label L_loop, L_done;
+
+          __ cmp_and_br_short(count, 0, Assembler::equal, Assembler::pt, L_done); // zero count - nothing to do
 
           __ sll_ptr(count, LogBytesPerHeapOop, count);
           __ sub(count, BytesPerHeapOop, count);
@@ -915,6 +917,7 @@
           __ subcc(count, 1, count);
           __ brx(Assembler::greaterEqual, false, Assembler::pt, L_loop);
           __ delayed()->add(addr, 1, addr);
+        __ BIND(L_done);
         }
         break;
       case BarrierSet::ModRef: