aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/internal/obj/link.go
diff options
context:
space:
mode:
authorisharipo <iskander.sharipov@intel.com>2018-05-16 02:21:59 +0300
committerIlya Tocar <ilya.tocar@intel.com>2018-05-22 14:57:15 +0000
commit5437cde96cd4228c3b3405cd138b410ffa5523c2 (patch)
tree09b96648b2beaf11943944c712c9da512679a90e /src/cmd/internal/obj/link.go
parent8a85bce215eda0fa56bf67186d0fd487954185f2 (diff)
downloadgo-5437cde96cd4228c3b3405cd138b410ffa5523c2.tar.xz
cmd/asm: enable AVX512
- Uncomment tests for AVX512 encoder - Permit instruction suffixes for x86 - Permit limited reg list [reg-reg] syntax for x86 for multi-source ops - EVEX encoding support in obj/x86 (Z-cases, asmevex, etc.) - optabs and ytabs generated by x86avxgen (https://golang.org/cl/107216) Note: suffix formatting implemented with updated CConv function. Now arch asm backend should register formatting function by calling RegisterOpSuffix. Updates #22779 Change-Id: I076a167ee49582700e058c56ad74e6696710c8c8 Reviewed-on: https://go-review.googlesource.com/113315 Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/internal/obj/link.go')
-rw-r--r--src/cmd/internal/obj/link.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/cmd/internal/obj/link.go b/src/cmd/internal/obj/link.go
index 2fbbf6cb25..f99f6f8d6a 100644
--- a/src/cmd/internal/obj/link.go
+++ b/src/cmd/internal/obj/link.go
@@ -138,13 +138,16 @@ import (
// offset = second register
//
// [reg, reg, reg-reg]
-// Register list for ARM and ARM64.
+// Register list for ARM, ARM64, 386/AMD64.
// Encoding:
// type = TYPE_REGLIST
// On ARM:
// offset = bit mask of registers in list; R0 is low bit.
// On ARM64:
// offset = register count (Q:size) | arrangement (opcode) | first register
+// On 386/AMD64:
+// reg = range low register
+// offset = 2 packed registers + kind tag (see x86.EncodeRegisterRange)
//
// reg, reg
// Register pair for ARM.
@@ -282,7 +285,7 @@ type Prog struct {
RegTo2 int16 // 2nd destination operand
Mark uint16 // bitmask of arch-specific items
Optab uint16 // arch-specific opcode index
- Scond uint8 // condition bits for conditional instruction (e.g., on ARM)
+ Scond uint8 // bits that describe instruction suffixes (e.g. ARM conditions)
Back uint8 // for x86 back end: backwards branch state
Ft uint8 // for x86 back end: type index of Prog.From
Tt uint8 // for x86 back end: type index of Prog.To