arm/armasm: fix wrong register order in MLA.S

Though "0xe0243192" can be correctly disassembled to
"MLA R1, R2, R3, R4", "0xe0243192" is disassembled to
"MLA.S R3, R1, R2, R4", which should be "MLA.S R1, R2, R3, R4".

This patch fix it.

fix golang/go#20752

Change-Id: I2b4627b822715954923429688bccb21c081b7d0e
Reviewed-on: https://go-review.googlesource.com/46456
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Ben Shi 2017-06-22 11:36:07 +00:00 коммит произвёл Cherry Zhang
Родитель 9dd8665418
Коммит 87a6340e8e
2 изменённых файлов: 2 добавлений и 1 удалений

Просмотреть файл

@ -115,7 +115,7 @@ func GoSyntax(inst Inst, pc uint64, symname func(uint64) (string, uint64), text
}
// For MLA-like instructions, the addend is the third operand.
switch inst.Op &^ 15 {
case SMLAWT_EQ, SMLAWB_EQ, MLA_EQ, MLS_EQ, SMMLA_EQ, SMMLS_EQ, SMLABB_EQ:
case SMLAWT_EQ, SMLAWB_EQ, MLA_EQ, MLA_S_EQ, MLS_EQ, SMMLA_EQ, SMMLS_EQ, SMLABB_EQ:
args = []string{args[1], args[2], args[0], args[3]}
}

1
arm/armasm/testdata/decode.txt поставляемый
Просмотреть файл

@ -306,4 +306,5 @@ ff818c71| 1 gnu strdvc r8, [ip, pc]
|97acd647 1 gnu error: unknown instruction
ed003be9| 1 plan9 LDMDB [R0,R2-R3,R5-R7], R11!
923124e0| 1 plan9 MLA R1, R2, R3, R4
923134e0| 1 plan9 MLA.S R1, R2, R3, R4
923164e0| 1 plan9 MLS R1, R2, R3, R4