pvmfw: jump_to_payload: De-dup CMP in asm!() am: f61f60d900

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Virtualization/+/3556683

Change-Id: Ie26e474474833577a95a33fd7e8425b052ac9dc6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/guest/pvmfw/src/arch/aarch64/payload.rs b/guest/pvmfw/src/arch/aarch64/payload.rs
index 3f3ee33..efa1709 100644
--- a/guest/pvmfw/src/arch/aarch64/payload.rs
+++ b/guest/pvmfw/src/arch/aarch64/payload.rs
@@ -73,26 +73,21 @@
     // SAFETY: We're exiting pvmfw by passing the register values we need to a noreturn asm!().
     unsafe {
         asm!(
-            "cmp {scratch}, {dice_handover}",
-            "b.hs 1f",
-
             // Zero .data & .bss until DICE handover.
+            "b 1f",
             "0: stp xzr, xzr, [{scratch}], 16",
-            "cmp {scratch}, {dice_handover}",
+            "1: cmp {scratch}, {dice_handover}",
             "b.lo 0b",
 
-            "1:",
             // Skip DICE handover.
             "mov {scratch}, {dice_handover_end}",
-            "cmp {scratch}, {scratch_end}",
-            "b.hs 1f",
 
             // Keep zeroing .data & .bss.
+            "b 1f",
             "0: stp xzr, xzr, [{scratch}], 16",
-            "cmp {scratch}, {scratch_end}",
+            "1: cmp {scratch}, {scratch_end}",
             "b.lo 0b",
 
-            "1:",
             // Flush d-cache over .data & .bss (including DICE handover).
             "0: dc cvau, {cache_line}",
             "add {cache_line}, {cache_line}, {dcache_line_size}",