SMMUL multiplies the values from Rn and Rm,
and stores the most significant 32 bits of the 64-bit result to Rd.
SMMLA multiplies the values from Rn and Rm,
adds the value in Ra to
the most significant 32 bits of the product, and stores the result
in Rd.
SMMLS multiplies the values from Rn and Rm,
subtracts the product from the value in Ra shifted
left by 32 bits, and stores the most significant 32 bits of the
result in Rd.
If the optional R parameter is specified, 0x80000000 is
added before extracting the most significant 32 bits. This has the
effect of rounding the result.