From: Michael Munday Date: Fri, 14 Oct 2016 15:37:55 +0000 (-0400) Subject: cmd/asm, cmd/internal/obj/s390x: fix VFMA and VFMS encoding X-Git-Tag: go1.8beta1~731 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=930ab0afd787214d379aca230944d0d41c8b90e6;p=gostls13.git cmd/asm, cmd/internal/obj/s390x: fix VFMA and VFMS encoding The m5 and m6 fields were the wrong way round. Fixes #17444. Change-Id: I10297064f2cd09d037eac581c96a011358f70aae Reviewed-on: https://go-review.googlesource.com/31130 Run-TryBot: Michael Munday TryBot-Result: Gobot Gobot Reviewed-by: Russ Cox --- diff --git a/src/cmd/asm/internal/asm/testdata/s390x.s b/src/cmd/asm/internal/asm/testdata/s390x.s index 0621261e13..f6278e9dbd 100644 --- a/src/cmd/asm/internal/asm/testdata/s390x.s +++ b/src/cmd/asm/internal/asm/testdata/s390x.s @@ -323,7 +323,10 @@ TEXT main·foo(SB),7,$16-0 // TEXT main.foo(SB), 7, $16-0 VERIMB $2, V31, V1, V2 // VERIMB V31, V1, $2, V2 // e72f10020472 VSEL V1, V2, V3, V4 // VSEL V2, V3, V1, V4 // e7412000308d VGFMAH V21, V31, V24, V0 // VGFMAH V31, V24, V21, V0 // e705f10087bc - WFMSDB V2, V25, V24, V31 // WFMSDB V25, V24, V2, V31 // e7f298038b8e + VFMADB V16, V8, V9, V10 // VFMADB V8, V9, V16, V10 // e7a08300948f + WFMADB V17, V18, V19, V20 // WFMADB V18, V19, V17, V20 // e74123083f8f + VFMSDB V2, V25, V24, V31 // VFMSDB V25, V24, V2, V31 // e7f293008b8e + WFMSDB V31, V2, V3, V4 // WFMSDB V2, V3, V31, V4 // e74f2308348e VPERM V31, V0, V2, V3 // VPERM V0, V2, V31, V3 // e73f0000248c VPDI $1, V2, V31, V1 // VPDI V2, V31, $1, V1 // e712f0001284 VLEG $1, (R3), V1 // VLEG (R3), $1, V1 // e71030001002 diff --git a/src/cmd/internal/obj/s390x/asmz.go b/src/cmd/internal/obj/s390x/asmz.go index 270670474b..80ae303f4f 100644 --- a/src/cmd/internal/obj/s390x/asmz.go +++ b/src/cmd/internal/obj/s390x/asmz.go @@ -4121,7 +4121,7 @@ func asmout(ctxt *obj.Link, asm *[]byte) { v2 := uint32(p.From3.Reg) v3 := uint32(p.From.Reg) v4 := uint32(p.Reg) - zVRRe(op, v1, v2, v3, m5, m6, v4, asm) + zVRRe(op, v1, v2, v3, m6, m5, v4, asm) case 122: // VRR-f LOAD VRS FROM GRS DISJOINT op, _, _ := vop(p.As)