diff options
| author | eric fang <eric.fang@arm.com> | 2020-11-23 10:59:33 +0000 |
|---|---|---|
| committer | eric fang <eric.fang@arm.com> | 2021-03-04 01:26:21 +0000 |
| commit | 79beddc773ecca50c283dde6aad7c80929da0554 (patch) | |
| tree | 83c492dc5a572cceeaffb9c549714f53d46c5f02 /src/cmd/internal/obj/arm64/a.out.go | |
| parent | 12bb256cb30a76b540dbbc1cac38d7044facfa29 (diff) | |
| download | go-79beddc773ecca50c283dde6aad7c80929da0554.tar.xz | |
cmd/asm: add 128-bit FLDPQ and FSTPQ instructions for arm64
This CL adds assembly support for 128-bit FLDPQ and FSTPQ instructions.
This CL also deletes some wrong pre/post-indexed LDP and STP instructions,
such as {ALDP, C_UAUTO4K, C_NONE, C_NONE, C_PAIR, 74, 8, REGSP, 0, C_XPRE},
because when the offset type is C_UAUTO4K, pre and post don't work.
Change-Id: Ifd901d4440eb06eb9e86c9dd17518749fdf32848
Reviewed-on: https://go-review.googlesource.com/c/go/+/273668
Trust: eric fang <eric.fang@arm.com>
Run-TryBot: eric fang <eric.fang@arm.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: eric fang <eric.fang@arm.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/internal/obj/arm64/a.out.go')
| -rw-r--r-- | src/cmd/internal/obj/arm64/a.out.go | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/cmd/internal/obj/arm64/a.out.go b/src/cmd/internal/obj/arm64/a.out.go index 7ab9c1475f..ed07f18691 100644 --- a/src/cmd/internal/obj/arm64/a.out.go +++ b/src/cmd/internal/obj/arm64/a.out.go @@ -420,16 +420,21 @@ const ( C_LBRA C_ZAUTO // 0(RSP) + C_NSAUTO_16 // -256 <= x < 0, 0 mod 16 C_NSAUTO_8 // -256 <= x < 0, 0 mod 8 C_NSAUTO_4 // -256 <= x < 0, 0 mod 4 C_NSAUTO // -256 <= x < 0 + C_NPAUTO_16 // -512 <= x < 0, 0 mod 16 C_NPAUTO // -512 <= x < 0, 0 mod 8 + C_NQAUTO_16 // -1024 <= x < 0, 0 mod 16 C_NAUTO4K // -4095 <= x < 0 + C_PSAUTO_16 // 0 to 255, 0 mod 16 C_PSAUTO_8 // 0 to 255, 0 mod 8 C_PSAUTO_4 // 0 to 255, 0 mod 4 C_PSAUTO // 0 to 255 C_PPAUTO_16 // 0 to 504, 0 mod 16 C_PPAUTO // 0 to 504, 0 mod 8 + C_PQAUTO_16 // 0 to 1008, 0 mod 16 C_UAUTO4K_16 // 0 to 4095, 0 mod 16 C_UAUTO4K_8 // 0 to 4095, 0 mod 8 C_UAUTO4K_4 // 0 to 4095, 0 mod 4 @@ -454,17 +459,22 @@ const ( C_SEXT16 // 0 to 65520 C_LEXT - C_ZOREG // 0(R) - C_NSOREG_8 // must mirror C_NSAUTO_8, etc + C_ZOREG // 0(R) + C_NSOREG_16 // must mirror C_NSAUTO_16, etc + C_NSOREG_8 C_NSOREG_4 C_NSOREG + C_NPOREG_16 C_NPOREG + C_NQOREG_16 C_NOREG4K + C_PSOREG_16 C_PSOREG_8 C_PSOREG_4 C_PSOREG C_PPOREG_16 C_PPOREG + C_PQOREG_16 C_UOREG4K_16 C_UOREG4K_8 C_UOREG4K_4 @@ -898,6 +908,7 @@ const ( AFDIVD AFDIVS AFLDPD + AFLDPQ AFLDPS AFMOVQ AFMOVD @@ -912,6 +923,7 @@ const ( AFSQRTD AFSQRTS AFSTPD + AFSTPQ AFSTPS AFSUBD AFSUBS |
