Cleaning BSS in ARMv8-A

I am trying to write good and basic 'cleaning bss' code for my bootloader but AI's arguing me and I don't know what to do..

My code is this:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ldr x2, =__bss_start
    ldr x3, =__bss_size

    cbz x3, start_main
    udiv x3, x3, #8
    mul x4, x3, #8
    sub x5, __bss_size, x4

clear_bss:
    cbz x3, check_remainder
    str xzr, [x2], #8
    sub x3, x3, #1
    cbnz x3 clear_bss
check_remainder:
    cbz x5, start_main
    str xzr, [x2], #1
    cbnz x5, check_remainder
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
But AI's forcing me to write instead of it:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ldr x2, =__bss_start
    ldr x3, =__bss_size
    cbz x3, start_main

clear_bss:
    str xzr, [x2], #8
    sub x3, x3, #1
    cbnz x3, clear_bss

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

They say my code sucks, so complex and their code is basic and optimised.
What should I do??___###

Okay, Im reporting my question. I just write a question and think about it, update things and someone reports it..



0