cmd/internal/obj/arm: improve static branch prediction for wrapper prologue
cmd/internal/obj/arm: improve static branch prediction for wrapper prologue

This is a follow-up to CL 36893.

Move the unlikely branch in the wrapper prologue to the end
of the function, where it has minimal impact on the instruction
cache. Static branch prediction is also less likely to choose
a forward branch.

Updates #19042

sort benchmarks:
name                  old time/op  new time/op  delta
SearchWrappers-4      1.44µs ± 0%  1.45µs ± 0%  +1.15%  (p=0.000 n=9+10)
SortString1K-4        1.02ms ± 0%  1.04ms ± 0%  +2.39%  (p=0.000 n=10+10)
SortString1K_Slice-4   960µs ± 0%   989µs ± 0%  +2.95%  (p=0.000 n=9+10)
StableString1K-4       218µs ± 0%   213µs ± 0%  -2.13%  (p=0.000 n=10+10)
SortInt1K-4            541µs ± 0%   543µs ± 0%  +0.30%  (p=0.003 n=9+10)
StableInt1K-4          760µs ± 1%   763µs ± 1%  +0.38%  (p=0.011 n=10+10)
StableInt1K_Slice-4    840µs ± 1%   779µs ± 0%  -7.31%  (p=0.000 n=9+10)
SortInt64K-4          55.2ms ± 0%  55.4ms ± 1%  +0.34%  (p=0.012 n=10+8)
SortInt64K_Slice-4    56.2ms ± 0%  55.6ms ± 1%  -1.16%  (p=0.000 n=10+10)
StableInt64K-4        70.9ms ± 1%  71.0ms ± 0%    ~     (p=0.315 n=10+7)
Sort1e2-4              250µs ± 0%   249µs ± 1%    ~     (p=0.315 n=9+10)
Stable1e2-4            600µs ± 0%   594µs ± 0%  -1.09%  (p=0.000 n=9+10)
Sort1e4-4             51.2ms ± 0%  51.4ms ± 1%  +0.40%  (p=0.001 n=9+10)
Stable1e4-4            204ms ± 1%   199ms ± 1%  -2.27%  (p=0.000 n=10+10)
Sort1e6-4              8.42s ± 0%   8.44s ± 0%  +0.28%  (p=0.000 n=8+9)
Stable1e6-4            43.3s ± 0%   42.5s ± 1%  -1.89%  (p=0.000 n=9+9)

Change-Id: I827559aa557fdba211a38ce3f77137b471c5c67e
Reviewed-on: https://go-review.googlesource.com/37611
Run-TryBot: Josh Bleecher Snyder <cdc248cc4d32e4fbfe04e45228163bcecd48a0b9@gmail.com>
Reviewed-by: Josh Bleecher Snyder <cdc248cc4d32e4fbfe04e45228163bcecd48a0b9@gmail.com>

cloudflare/go,christopher-henderson/Go,derekmarcotte/go,derekmarcotte/go,codestation/go,ImJasonH/go,cloudflare/go,golang/go,akutz/go,polyverse-security/go,linux-on-ibm-z/go,linux-on-ibm-z/go,Cofyc/go,linux-on-ibm-z/go,CAFxX/go,Cofyc/go,linux-on-ibm-z/go,josharian/go,josharian/go,CAFxX/go,polyverse-security/go,golang/go,codestation/go,nawawi/go,derekmarcotte/go,ImJasonH/go,josharian/go,akutz/go,josharian/go,cloudflare/go,golang/go,codestation/go,Cofyc/go,akutz/go,linux-on-ibm-z/go,CAFxX/go,linux-on-ibm-z/go,polyverse-security/go,golang/go,polyverse-security/go,nawawi/go,ImJasonH/go,ImJasonH/go,vsekhar/elastic-go,ImJasonH/go,golang/go,golang/go,vsekhar/elastic-go,nawawi/go,vsekhar/elastic-go,codestation/go,vsekhar/elastic-go,polyverse-security/go,ImJasonH/go,derekmarcotte/go,Cofyc/go,nawawi/go,CAFxX/go,vsekhar/elastic-go,derekmarcotte/go,josharian/go,cloudflare/go,derekmarcotte/go,polyverse-security/go,derekmarcotte/go,Cofyc/go,codestation/go,ImJasonH/go,polyverse-security/go,akutz/go,akutz/go,akutz/go,nawawi/go,codestation/go,nawawi/go,cloudflare/go,cloudflare/go,codestation/go,akutz/go,Cofyc/go,polyverse-security/go,nawawi/go,golang/go,Cofyc/go,akutz/go,CAFxX/go,nawawi/go,josharian/go,CAFxX/go,CAFxX/go,codestation/go,josharian/go,cloudflare/go,vsekhar/elastic-go,CAFxX/go,vsekhar/elastic-go,linux-on-ibm-z/go,cloudflare/go,ImJasonH/go,josharian/go,derekmarcotte/go,Cofyc/go,linux-on-ibm-z/go,vsekhar/elastic-go,golang/go