arm/armasm: fix wrong decoding MOVW/MOVH/MOVB to plan9 syntax

There are two issues in decoding to arm plan9 syntax.

1. Though "0xe7912e29" is correctly decoded to "MOVW (R1)(R0>>28), R2",
"0xe7112e20" is also decoded to the same text, which is expected to
"MOVW.U (R1)(R0>>28), R2".

2. Both 0xe5d21000 and 0xe1d210d0 are decoded to "MOVB (R2), R1".
The first one is LDRB and should be decoded to "MOVBU (R2), R1". And
the second one is LDRSB and should be decoded to "MOVBS (R2), R1".

This patch fixes them and adds more decoding tests.

fix golang/go#20766

Change-Id: If3479c200fb250af1e1efb546576acb399eba7c1
Run-TryBot: Cherry Zhang <>
TryBot-Result: Gobot Gobot <>
Reviewed-by: Cherry Zhang <>
2 files changed