Addends should always be signed.
In the target dependent code we already always return a int64_t. In the target independent code we carefully use uintX_t, which has the same result given 2 complement rules.
This just simplifies the code to use int64_t everywhere.
Remove spaces around <>.
But do you need this? r_addend is a signed type, so it'll be implicitly sign-extended.