https://golang.org/cl/246763 accidentally changed this from upper + 0 +
carry to upper + old vdsoSP + carry.
The old value of vdsoPC is usually zero, so this typically works.
However, the reentrant case will have a non-zero value, resulting in a
bogus returned time.
Fixes #49481
Change-Id: I0110b84277bf911804cb0ff8097aebf1b7eb100a
Reviewed-on: https://go-review.googlesource.com/c/go/+/362674
Trust: Michael Pratt <mpratt@google.com>
Run-TryBot: Michael Pratt <mpratt@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
MOVW $1000000000, R3
MULLU R0, R3, (R1, R0)
ADD.S R2, R0
- ADC R4, R1
+ ADC $0, R1 // Add carry bit to upper half.
MOVW R0, ret_lo+0(FP)
MOVW R1, ret_hi+4(FP)