Revert^2 "Prevent overflow for AOT hotness counters"

Fixed bug where sbc usage was incorrect. sbc does -1 + carry.

Test: test/run-test --always-clean --runtime-option -Xcheck:jni --64 674-hotness-compiled
Test: test/run-test --always-clean --runtime-option -Xcheck:jni 674-hotness-compiled
Bug: 139883463

This reverts commit 7ab07777b08db86dda2891f3e7ae15df8f25a599.

Change-Id: I6f8ac0320592a94314386b04cdb0c7e0e6da6994
diff --git a/compiler/optimizing/code_generator_arm64.cc b/compiler/optimizing/code_generator_arm64.cc
index a299ece..502ff60 100644
--- a/compiler/optimizing/code_generator_arm64.cc
+++ b/compiler/optimizing/code_generator_arm64.cc
@@ -1070,6 +1070,8 @@
     Register temp = temps.AcquireX();
     __ Ldrh(temp, MemOperand(kArtMethodRegister, ArtMethod::HotnessCountOffset().Int32Value()));
     __ Add(temp, temp, 1);
+      // Subtract one if the counter would overflow.
+    __ Sub(temp, temp, Operand(temp, LSR, 16));
     __ Strh(temp, MemOperand(kArtMethodRegister, ArtMethod::HotnessCountOffset().Int32Value()));
   }
 
@@ -3177,6 +3179,8 @@
       __ Ldr(temp1, MemOperand(sp, 0));
       __ Ldrh(temp2, MemOperand(temp1, ArtMethod::HotnessCountOffset().Int32Value()));
       __ Add(temp2, temp2, 1);
+      // Subtract one if the counter would overflow.
+      __ Sub(temp2, temp2, Operand(temp2, LSR, 16));
       __ Strh(temp2, MemOperand(temp1, ArtMethod::HotnessCountOffset().Int32Value()));
     }
     GenerateSuspendCheck(info->GetSuspendCheck(), successor);