diff options
| author | isharipo <iskander.sharipov@intel.com> | 2018-05-16 02:21:59 +0300 |
|---|---|---|
| committer | Ilya Tocar <ilya.tocar@intel.com> | 2018-05-22 14:57:15 +0000 |
| commit | 5437cde96cd4228c3b3405cd138b410ffa5523c2 (patch) | |
| tree | 09b96648b2beaf11943944c712c9da512679a90e /src/cmd/internal/obj/link.go | |
| parent | 8a85bce215eda0fa56bf67186d0fd487954185f2 (diff) | |
| download | go-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.go | 7 |
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 |
