aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfanzha02 <fannie.zhang@arm.com>2017-06-14 06:44:43 +0000
committerCherry Zhang <cherryyz@google.com>2017-08-25 20:43:03 +0000
commitaea286b449c5ffe6d69fb7bb0c5b05e480ed3ad9 (patch)
treeaf216d33029e1d27878c592b8375cd75607e0a34 /src
parent38bd725bf1d20c32487ae7e12e37c0060a46ac0f (diff)
downloadgo-aea286b449c5ffe6d69fb7bb0c5b05e480ed3ad9.tar.xz
cmd/internal/obj/arm64: fix assemble fcsels/fcseld bug
The current code treats the type of SIMD&FP register as C_REG incorrectly. The fix code converts C_REG type into C_FREG type. Uncomment fcsels/fcseld test cases. Fixes #21582 Change-Id: I754c51f72a0418bd352cbc0f7740f14cc599c72d Reviewed-on: https://go-review.googlesource.com/58350 Reviewed-by: Cherry Zhang <cherryyz@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src')
-rw-r--r--src/cmd/asm/internal/asm/testdata/arm64enc.s4
-rw-r--r--src/cmd/internal/obj/arm64/asm7.go2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/cmd/asm/internal/asm/testdata/arm64enc.s b/src/cmd/asm/internal/asm/testdata/arm64enc.s
index 686ae0fa42..2d53969a28 100644
--- a/src/cmd/asm/internal/asm/testdata/arm64enc.s
+++ b/src/cmd/asm/internal/asm/testdata/arm64enc.s
@@ -406,8 +406,8 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8
FCMPES $(0.0), F29 // b823201e
FCMPED F13, F10 // 50216d1e
FCMPED $(0.0), F25 // 3823601e
- // FCSELS EQ, F26, F27, F25 // 590f3b1e
- // FCSELD PL, F8, F22, F7 // 075d761e
+ FCSELS EQ, F26, F27, F25 // 590f3b1e
+ FCSELD PL, F8, F22, F7 // 075d761e
//TODO FCVTASW F21, R15 // af02241e
//TODO FCVTAS F20, ZR // 9f02249e
//TODO FCVTASW F6, R11 // cb00641e
diff --git a/src/cmd/internal/obj/arm64/asm7.go b/src/cmd/internal/obj/arm64/asm7.go
index fd6fcb77ea..ddd43485f7 100644
--- a/src/cmd/internal/obj/arm64/asm7.go
+++ b/src/cmd/internal/obj/arm64/asm7.go
@@ -536,7 +536,7 @@ var optab = []Optab{
{AFCMPS, C_FREG, C_FREG, C_NONE, 56, 4, 0, 0, 0},
{AFCMPS, C_FCON, C_FREG, C_NONE, 56, 4, 0, 0, 0},
{AFCCMPS, C_COND, C_FREG, C_VCON, 57, 4, 0, 0, 0},
- {AFCSELD, C_COND, C_REG, C_FREG, 18, 4, 0, 0, 0},
+ {AFCSELD, C_COND, C_FREG, C_FREG, 18, 4, 0, 0, 0},
{AFCVTSD, C_FREG, C_NONE, C_FREG, 29, 4, 0, 0, 0},
{ACLREX, C_NONE, C_NONE, C_VCON, 38, 4, 0, 0, 0},
{ACLREX, C_NONE, C_NONE, C_NONE, 38, 4, 0, 0, 0},