src/hotspot/cpu/arm/stubGenerator_arm.cpp
changeset 48104 62d5973082e3
parent 47658 c2b7fb8e5144
child 49164 7e958a8ebcd3
child 55974 06122633fead
--- a/src/hotspot/cpu/arm/stubGenerator_arm.cpp	Thu Nov 23 15:51:06 2017 +0100
+++ b/src/hotspot/cpu/arm/stubGenerator_arm.cpp	Wed Nov 22 18:58:01 2017 -0500
@@ -2968,7 +2968,9 @@
         CardTableModRefBS* ct = barrier_set_cast<CardTableModRefBS>(bs);
         assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust this code");
 
-        Label L_cardtable_loop;
+        Label L_cardtable_loop, L_done;
+
+        __ cbz_32(count, L_done); // zero count - nothing to do
 
         __ add_ptr_scaled_int32(count, addr, count, LogBytesPerHeapOop);
         __ sub(count, count, BytesPerHeapOop);                            // last addr
@@ -2987,6 +2989,7 @@
         __ strb(zero, Address(addr, 1, post_indexed));
         __ subs(count, count, 1);
         __ b(L_cardtable_loop, ge);
+        __ BIND(L_done);
       }
       break;
     case BarrierSet::ModRef: