aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/compile/internal/ppc64/ssa.go20
-rw-r--r--src/cmd/go/internal/modfetch/pseudo.go2
-rw-r--r--src/cmd/internal/obj/s390x/asmz.go484
-rw-r--r--src/cmd/link/internal/ld/dwarf_test.go6
-rw-r--r--src/cmd/link/internal/wasm/asm.go34
-rw-r--r--src/cmd/trace/pprof.go2
6 files changed, 274 insertions, 274 deletions
diff --git a/src/cmd/compile/internal/ppc64/ssa.go b/src/cmd/compile/internal/ppc64/ssa.go
index f3a49643f1..cbe233f054 100644
--- a/src/cmd/compile/internal/ppc64/ssa.go
+++ b/src/cmd/compile/internal/ppc64/ssa.go
@@ -25,16 +25,16 @@ type iselOp struct {
var iselRegs = [2]int16{ppc64.REG_R0, ppc64.REGTMP}
var iselOps = map[ssa.Op]iselOp{
- ssa.OpPPC64Equal: iselOp{cond: ppc64.C_COND_EQ, valueIfCond: 1},
- ssa.OpPPC64NotEqual: iselOp{cond: ppc64.C_COND_EQ, valueIfCond: 0},
- ssa.OpPPC64LessThan: iselOp{cond: ppc64.C_COND_LT, valueIfCond: 1},
- ssa.OpPPC64GreaterEqual: iselOp{cond: ppc64.C_COND_LT, valueIfCond: 0},
- ssa.OpPPC64GreaterThan: iselOp{cond: ppc64.C_COND_GT, valueIfCond: 1},
- ssa.OpPPC64LessEqual: iselOp{cond: ppc64.C_COND_GT, valueIfCond: 0},
- ssa.OpPPC64FLessThan: iselOp{cond: ppc64.C_COND_LT, valueIfCond: 1},
- ssa.OpPPC64FGreaterThan: iselOp{cond: ppc64.C_COND_GT, valueIfCond: 1},
- ssa.OpPPC64FLessEqual: iselOp{cond: ppc64.C_COND_LT, valueIfCond: 1}, // 2 comparisons, 2nd is EQ
- ssa.OpPPC64FGreaterEqual: iselOp{cond: ppc64.C_COND_GT, valueIfCond: 1}, // 2 comparisons, 2nd is EQ
+ ssa.OpPPC64Equal: {cond: ppc64.C_COND_EQ, valueIfCond: 1},
+ ssa.OpPPC64NotEqual: {cond: ppc64.C_COND_EQ, valueIfCond: 0},
+ ssa.OpPPC64LessThan: {cond: ppc64.C_COND_LT, valueIfCond: 1},
+ ssa.OpPPC64GreaterEqual: {cond: ppc64.C_COND_LT, valueIfCond: 0},
+ ssa.OpPPC64GreaterThan: {cond: ppc64.C_COND_GT, valueIfCond: 1},
+ ssa.OpPPC64LessEqual: {cond: ppc64.C_COND_GT, valueIfCond: 0},
+ ssa.OpPPC64FLessThan: {cond: ppc64.C_COND_LT, valueIfCond: 1},
+ ssa.OpPPC64FGreaterThan: {cond: ppc64.C_COND_GT, valueIfCond: 1},
+ ssa.OpPPC64FLessEqual: {cond: ppc64.C_COND_LT, valueIfCond: 1}, // 2 comparisons, 2nd is EQ
+ ssa.OpPPC64FGreaterEqual: {cond: ppc64.C_COND_GT, valueIfCond: 1}, // 2 comparisons, 2nd is EQ
}
// markMoves marks any MOVXconst ops that need to avoid clobbering flags.
diff --git a/src/cmd/go/internal/modfetch/pseudo.go b/src/cmd/go/internal/modfetch/pseudo.go
index 88c3d3a527..0d3be10491 100644
--- a/src/cmd/go/internal/modfetch/pseudo.go
+++ b/src/cmd/go/internal/modfetch/pseudo.go
@@ -62,7 +62,7 @@ func PseudoVersion(major, older string, t time.Time, rev string) string {
// Form (2), (3).
// Extract patch from vMAJOR.MINOR.PATCH
- v := older[:len(older)]
+ v := older[:]
i := strings.LastIndex(v, ".") + 1
v, patch := v[:i], v[i:]
diff --git a/src/cmd/internal/obj/s390x/asmz.go b/src/cmd/internal/obj/s390x/asmz.go
index d043b2878e..2b187edca5 100644
--- a/src/cmd/internal/obj/s390x/asmz.go
+++ b/src/cmd/internal/obj/s390x/asmz.go
@@ -68,351 +68,351 @@ type Optab struct {
var optab = []Optab{
// zero-length instructions
- Optab{i: 0, as: obj.ATEXT, a1: C_ADDR, a6: C_TEXTSIZE},
- Optab{i: 0, as: obj.ATEXT, a1: C_ADDR, a3: C_LCON, a6: C_TEXTSIZE},
- Optab{i: 0, as: obj.APCDATA, a1: C_LCON, a6: C_LCON},
- Optab{i: 0, as: obj.AFUNCDATA, a1: C_SCON, a6: C_ADDR},
- Optab{i: 0, as: obj.ANOP},
- Optab{i: 0, as: obj.ANOP, a1: C_SAUTO},
+ {i: 0, as: obj.ATEXT, a1: C_ADDR, a6: C_TEXTSIZE},
+ {i: 0, as: obj.ATEXT, a1: C_ADDR, a3: C_LCON, a6: C_TEXTSIZE},
+ {i: 0, as: obj.APCDATA, a1: C_LCON, a6: C_LCON},
+ {i: 0, as: obj.AFUNCDATA, a1: C_SCON, a6: C_ADDR},
+ {i: 0, as: obj.ANOP},
+ {i: 0, as: obj.ANOP, a1: C_SAUTO},
// move register
- Optab{i: 1, as: AMOVD, a1: C_REG, a6: C_REG},
- Optab{i: 1, as: AMOVB, a1: C_REG, a6: C_REG},
- Optab{i: 1, as: AMOVBZ, a1: C_REG, a6: C_REG},
- Optab{i: 1, as: AMOVW, a1: C_REG, a6: C_REG},
- Optab{i: 1, as: AMOVWZ, a1: C_REG, a6: C_REG},
- Optab{i: 1, as: AFMOVD, a1: C_FREG, a6: C_FREG},
- Optab{i: 1, as: AMOVDBR, a1: C_REG, a6: C_REG},
+ {i: 1, as: AMOVD, a1: C_REG, a6: C_REG},
+ {i: 1, as: AMOVB, a1: C_REG, a6: C_REG},
+ {i: 1, as: AMOVBZ, a1: C_REG, a6: C_REG},
+ {i: 1, as: AMOVW, a1: C_REG, a6: C_REG},
+ {i: 1, as: AMOVWZ, a1: C_REG, a6: C_REG},
+ {i: 1, as: AFMOVD, a1: C_FREG, a6: C_FREG},
+ {i: 1, as: AMOVDBR, a1: C_REG, a6: C_REG},
// load constant
- Optab{i: 26, as: AMOVD, a1: C_LACON, a6: C_REG},
- Optab{i: 26, as: AMOVW, a1: C_LACON, a6: C_REG},
- Optab{i: 26, as: AMOVWZ, a1: C_LACON, a6: C_REG},
- Optab{i: 3, as: AMOVD, a1: C_DCON, a6: C_REG},
- Optab{i: 3, as: AMOVW, a1: C_DCON, a6: C_REG},
- Optab{i: 3, as: AMOVWZ, a1: C_DCON, a6: C_REG},
- Optab{i: 3, as: AMOVB, a1: C_DCON, a6: C_REG},
- Optab{i: 3, as: AMOVBZ, a1: C_DCON, a6: C_REG},
+ {i: 26, as: AMOVD, a1: C_LACON, a6: C_REG},
+ {i: 26, as: AMOVW, a1: C_LACON, a6: C_REG},
+ {i: 26, as: AMOVWZ, a1: C_LACON, a6: C_REG},
+ {i: 3, as: AMOVD, a1: C_DCON, a6: C_REG},
+ {i: 3, as: AMOVW, a1: C_DCON, a6: C_REG},
+ {i: 3, as: AMOVWZ, a1: C_DCON, a6: C_REG},
+ {i: 3, as: AMOVB, a1: C_DCON, a6: C_REG},
+ {i: 3, as: AMOVBZ, a1: C_DCON, a6: C_REG},
// store constant
- Optab{i: 72, as: AMOVD, a1: C_SCON, a6: C_LAUTO},
- Optab{i: 72, as: AMOVD, a1: C_ADDCON, a6: C_LAUTO},
- Optab{i: 72, as: AMOVW, a1: C_SCON, a6: C_LAUTO},
- Optab{i: 72, as: AMOVW, a1: C_ADDCON, a6: C_LAUTO},
- Optab{i: 72, as: AMOVWZ, a1: C_SCON, a6: C_LAUTO},
- Optab{i: 72, as: AMOVWZ, a1: C_ADDCON, a6: C_LAUTO},
- Optab{i: 72, as: AMOVB, a1: C_SCON, a6: C_LAUTO},
- Optab{i: 72, as: AMOVB, a1: C_ADDCON, a6: C_LAUTO},
- Optab{i: 72, as: AMOVBZ, a1: C_SCON, a6: C_LAUTO},
- Optab{i: 72, as: AMOVBZ, a1: C_ADDCON, a6: C_LAUTO},
- Optab{i: 72, as: AMOVD, a1: C_SCON, a6: C_LOREG},
- Optab{i: 72, as: AMOVD, a1: C_ADDCON, a6: C_LOREG},
- Optab{i: 72, as: AMOVW, a1: C_SCON, a6: C_LOREG},
- Optab{i: 72, as: AMOVW, a1: C_ADDCON, a6: C_LOREG},
- Optab{i: 72, as: AMOVWZ, a1: C_SCON, a6: C_LOREG},
- Optab{i: 72, as: AMOVWZ, a1: C_ADDCON, a6: C_LOREG},
- Optab{i: 72, as: AMOVB, a1: C_SCON, a6: C_LOREG},
- Optab{i: 72, as: AMOVB, a1: C_ADDCON, a6: C_LOREG},
- Optab{i: 72, as: AMOVBZ, a1: C_SCON, a6: C_LOREG},
- Optab{i: 72, as: AMOVBZ, a1: C_ADDCON, a6: C_LOREG},
+ {i: 72, as: AMOVD, a1: C_SCON, a6: C_LAUTO},
+ {i: 72, as: AMOVD, a1: C_ADDCON, a6: C_LAUTO},
+ {i: 72, as: AMOVW, a1: C_SCON, a6: C_LAUTO},
+ {i: 72, as: AMOVW, a1: C_ADDCON, a6: C_LAUTO},
+ {i: 72, as: AMOVWZ, a1: C_SCON, a6: C_LAUTO},
+ {i: 72, as: AMOVWZ, a1: C_ADDCON, a6: C_LAUTO},
+ {i: 72, as: AMOVB, a1: C_SCON, a6: C_LAUTO},
+ {i: 72, as: AMOVB, a1: C_ADDCON, a6: C_LAUTO},
+ {i: 72, as: AMOVBZ, a1: C_SCON, a6: C_LAUTO},
+ {i: 72, as: AMOVBZ, a1: C_ADDCON, a6: C_LAUTO},
+ {i: 72, as: AMOVD, a1: C_SCON, a6: C_LOREG},
+ {i: 72, as: AMOVD, a1: C_ADDCON, a6: C_LOREG},
+ {i: 72, as: AMOVW, a1: C_SCON, a6: C_LOREG},
+ {i: 72, as: AMOVW, a1: C_ADDCON, a6: C_LOREG},
+ {i: 72, as: AMOVWZ, a1: C_SCON, a6: C_LOREG},
+ {i: 72, as: AMOVWZ, a1: C_ADDCON, a6: C_LOREG},
+ {i: 72, as: AMOVB, a1: C_SCON, a6: C_LOREG},
+ {i: 72, as: AMOVB, a1: C_ADDCON, a6: C_LOREG},
+ {i: 72, as: AMOVBZ, a1: C_SCON, a6: C_LOREG},
+ {i: 72, as: AMOVBZ, a1: C_ADDCON, a6: C_LOREG},
// store
- Optab{i: 35, as: AMOVD, a1: C_REG, a6: C_LAUTO},
- Optab{i: 35, as: AMOVW, a1: C_REG, a6: C_LAUTO},
- Optab{i: 35, as: AMOVWZ, a1: C_REG, a6: C_LAUTO},
- Optab{i: 35, as: AMOVBZ, a1: C_REG, a6: C_LAUTO},
- Optab{i: 35, as: AMOVB, a1: C_REG, a6: C_LAUTO},
- Optab{i: 35, as: AMOVDBR, a1: C_REG, a6: C_LAUTO},
- Optab{i: 35, as: AMOVHBR, a1: C_REG, a6: C_LAUTO},
- Optab{i: 35, as: AMOVD, a1: C_REG, a6: C_LOREG},
- Optab{i: 35, as: AMOVW, a1: C_REG, a6: C_LOREG},
- Optab{i: 35, as: AMOVWZ, a1: C_REG, a6: C_LOREG},
- Optab{i: 35, as: AMOVBZ, a1: C_REG, a6: C_LOREG},
- Optab{i: 35, as: AMOVB, a1: C_REG, a6: C_LOREG},
- Optab{i: 35, as: AMOVDBR, a1: C_REG, a6: C_LOREG},
- Optab{i: 35, as: AMOVHBR, a1: C_REG, a6: C_LOREG},
- Optab{i: 74, as: AMOVD, a1: C_REG, a6: C_ADDR},
- Optab{i: 74, as: AMOVW, a1: C_REG, a6: C_ADDR},
- Optab{i: 74, as: AMOVWZ, a1: C_REG, a6: C_ADDR},
- Optab{i: 74, as: AMOVBZ, a1: C_REG, a6: C_ADDR},
- Optab{i: 74, as: AMOVB, a1: C_REG, a6: C_ADDR},
+ {i: 35, as: AMOVD, a1: C_REG, a6: C_LAUTO},
+ {i: 35, as: AMOVW, a1: C_REG, a6: C_LAUTO},
+ {i: 35, as: AMOVWZ, a1: C_REG, a6: C_LAUTO},
+ {i: 35, as: AMOVBZ, a1: C_REG, a6: C_LAUTO},
+ {i: 35, as: AMOVB, a1: C_REG, a6: C_LAUTO},
+ {i: 35, as: AMOVDBR, a1: C_REG, a6: C_LAUTO},
+ {i: 35, as: AMOVHBR, a1: C_REG, a6: C_LAUTO},
+ {i: 35, as: AMOVD, a1: C_REG, a6: C_LOREG},
+ {i: 35, as: AMOVW, a1: C_REG, a6: C_LOREG},
+ {i: 35, as: AMOVWZ, a1: C_REG, a6: C_LOREG},
+ {i: 35, as: AMOVBZ, a1: C_REG, a6: C_LOREG},
+ {i: 35, as: AMOVB, a1: C_REG, a6: C_LOREG},
+ {i: 35, as: AMOVDBR, a1: C_REG, a6: C_LOREG},
+ {i: 35, as: AMOVHBR, a1: C_REG, a6: C_LOREG},
+ {i: 74, as: AMOVD, a1: C_REG, a6: C_ADDR},
+ {i: 74, as: AMOVW, a1: C_REG, a6: C_ADDR},
+ {i: 74, as: AMOVWZ, a1: C_REG, a6: C_ADDR},
+ {i: 74, as: AMOVBZ, a1: C_REG, a6: C_ADDR},
+ {i: 74, as: AMOVB, a1: C_REG, a6: C_ADDR},
// load
- Optab{i: 36, as: AMOVD, a1: C_LAUTO, a6: C_REG},
- Optab{i: 36, as: AMOVW, a1: C_LAUTO, a6: C_REG},
- Optab{i: 36, as: AMOVWZ, a1: C_LAUTO, a6: C_REG},
- Optab{i: 36, as: AMOVBZ, a1: C_LAUTO, a6: C_REG},
- Optab{i: 36, as: AMOVB, a1: C_LAUTO, a6: C_REG},
- Optab{i: 36, as: AMOVDBR, a1: C_LAUTO, a6: C_REG},
- Optab{i: 36, as: AMOVHBR, a1: C_LAUTO, a6: C_REG},
- Optab{i: 36, as: AMOVD, a1: C_LOREG, a6: C_REG},
- Optab{i: 36, as: AMOVW, a1: C_LOREG, a6: C_REG},
- Optab{i: 36, as: AMOVWZ, a1: C_LOREG, a6: C_REG},
- Optab{i: 36, as: AMOVBZ, a1: C_LOREG, a6: C_REG},
- Optab{i: 36, as: AMOVB, a1: C_LOREG, a6: C_REG},
- Optab{i: 36, as: AMOVDBR, a1: C_LOREG, a6: C_REG},
- Optab{i: 36, as: AMOVHBR, a1: C_LOREG, a6: C_REG},
- Optab{i: 75, as: AMOVD, a1: C_ADDR, a6: C_REG},
- Optab{i: 75, as: AMOVW, a1: C_ADDR, a6: C_REG},
- Optab{i: 75, as: AMOVWZ, a1: C_ADDR, a6: C_REG},
- Optab{i: 75, as: AMOVBZ, a1: C_ADDR, a6: C_REG},
- Optab{i: 75, as: AMOVB, a1: C_ADDR, a6: C_REG},
+ {i: 36, as: AMOVD, a1: C_LAUTO, a6: C_REG},
+ {i: 36, as: AMOVW, a1: C_LAUTO, a6: C_REG},
+ {i: 36, as: AMOVWZ, a1: C_LAUTO, a6: C_REG},
+ {i: 36, as: AMOVBZ, a1: C_LAUTO, a6: C_REG},
+ {i: 36, as: AMOVB, a1: C_LAUTO, a6: C_REG},
+ {i: 36, as: AMOVDBR, a1: C_LAUTO, a6: C_REG},
+ {i: 36, as: AMOVHBR, a1: C_LAUTO, a6: C_REG},
+ {i: 36, as: AMOVD, a1: C_LOREG, a6: C_REG},
+ {i: 36, as: AMOVW, a1: C_LOREG, a6: C_REG},
+ {i: 36, as: AMOVWZ, a1: C_LOREG, a6: C_REG},
+ {i: 36, as: AMOVBZ, a1: C_LOREG, a6: C_REG},
+ {i: 36, as: AMOVB, a1: C_LOREG, a6: C_REG},
+ {i: 36, as: AMOVDBR, a1: C_LOREG, a6: C_REG},
+ {i: 36, as: AMOVHBR, a1: C_LOREG, a6: C_REG},
+ {i: 75, as: AMOVD, a1: C_ADDR, a6: C_REG},
+ {i: 75, as: AMOVW, a1: C_ADDR, a6: C_REG},
+ {i: 75, as: AMOVWZ, a1: C_ADDR, a6: C_REG},
+ {i: 75, as: AMOVBZ, a1: C_ADDR, a6: C_REG},
+ {i: 75, as: AMOVB, a1: C_ADDR, a6: C_REG},
// interlocked load and op
- Optab{i: 99, as: ALAAG, a1: C_REG, a2: C_REG, a6: C_LOREG},
+ {i: 99, as: ALAAG, a1: C_REG, a2: C_REG, a6: C_LOREG},
// integer arithmetic
- Optab{i: 2, as: AADD, a1: C_REG, a2: C_REG, a6: C_REG},
- Optab{i: 2, as: AADD, a1: C_REG, a6: C_REG},
- Optab{i: 22, as: AADD, a1: C_LCON, a2: C_REG, a6: C_REG},
- Optab{i: 22, as: AADD, a1: C_LCON, a6: C_REG},
- Optab{i: 12, as: AADD, a1: C_LOREG, a6: C_REG},
- Optab{i: 12, as: AADD, a1: C_LAUTO, a6: C_REG},
- Optab{i: 21, as: ASUB, a1: C_LCON, a2: C_REG, a6: C_REG},
- Optab{i: 21, as: ASUB, a1: C_LCON, a6: C_REG},
- Optab{i: 12, as: ASUB, a1: C_LOREG, a6: C_REG},
- Optab{i: 12, as: ASUB, a1: C_LAUTO, a6: C_REG},
- Optab{i: 4, as: AMULHD, a1: C_REG, a6: C_REG},
- Optab{i: 4, as: AMULHD, a1: C_REG, a2: C_REG, a6: C_REG},
- Optab{i: 2, as: ADIVW, a1: C_REG, a2: C_REG, a6: C_REG},
- Optab{i: 2, as: ADIVW, a1: C_REG, a6: C_REG},
- Optab{i: 10, as: ASUB, a1: C_REG, a2: C_REG, a6: C_REG},
- Optab{i: 10, as: ASUB, a1: C_REG, a6: C_REG},
- Optab{i: 47, as: ANEG, a1: C_REG, a6: C_REG},
- Optab{i: 47, as: ANEG, a6: C_REG},
+ {i: 2, as: AADD, a1: C_REG, a2: C_REG, a6: C_REG},
+ {i: 2, as: AADD, a1: C_REG, a6: C_REG},
+ {i: 22, as: AADD, a1: C_LCON, a2: C_REG, a6: C_REG},
+ {i: 22, as: AADD, a1: C_LCON, a6: C_REG},
+ {i: 12, as: AADD, a1: C_LOREG, a6: C_REG},
+ {i: 12, as: AADD, a1: C_LAUTO, a6: C_REG},
+ {i: 21, as: ASUB, a1: C_LCON, a2: C_REG, a6: C_REG},
+ {i: 21, as: ASUB, a1: C_LCON, a6: C_REG},
+ {i: 12, as: ASUB, a1: C_LOREG, a6: C_REG},
+ {i: 12, as: ASUB, a1: C_LAUTO, a6: C_REG},
+ {i: 4, as: AMULHD, a1: C_REG, a6: C_REG},
+ {i: 4, as: AMULHD, a1: C_REG, a2: C_REG, a6: C_REG},
+ {i: 2, as: ADIVW, a1: C_REG, a2: C_REG, a6: C_REG},
+ {i: 2, as: ADIVW, a1: C_REG, a6: C_REG},
+ {i: 10, as: ASUB, a1: C_REG, a2: C_REG, a6: C_REG},
+ {i: 10, as: ASUB, a1: C_REG, a6: C_REG},
+ {i: 47, as: ANEG, a1: C_REG, a6: C_REG},
+ {i: 47, as: ANEG, a6: C_REG},
// integer logical
- Optab{i: 6, as: AAND, a1: C_REG, a2: C_REG, a6: C_REG},
- Optab{i: 6, as: AAND, a1: C_REG, a6: C_REG},
- Optab{i: 23, as: AAND, a1: C_LCON, a6: C_REG},
- Optab{i: 12, as: AAND, a1: C_LOREG, a6: C_REG},
- Optab{i: 12, as: AAND, a1: C_LAUTO, a6: C_REG},
- Optab{i: 6, as: AANDW, a1: C_REG, a2: C_REG, a6: C_REG},
- Optab{i: 6, as: AANDW, a1: C_REG, a6: C_REG},
- Optab{i: 24, as: AANDW, a1: C_LCON, a6: C_REG},
- Optab{i: 12, as: AANDW, a1: C_LOREG, a6: C_REG},
- Optab{i: 12, as: AANDW, a1: C_LAUTO, a6: C_REG},
- Optab{i: 7, as: ASLD, a1: C_REG, a6: C_REG},
- Optab{i: 7, as: ASLD, a1: C_REG, a2: C_REG, a6: C_REG},
- Optab{i: 7, as: ASLD, a1: C_SCON, a2: C_REG, a6: C_REG},
- Optab{i: 7, as: ASLD, a1: C_SCON, a6: C_REG},
- Optab{i: 13, as: ARNSBG, a1: C_SCON, a3: C_SCON, a4: C_SCON, a5: C_REG, a6: C_REG},
+ {i: 6, as: AAND, a1: C_REG, a2: C_REG, a6: C_REG},
+ {i: 6, as: AAND, a1: C_REG, a6: C_REG},
+ {i: 23, as: AAND, a1: C_LCON, a6: C_REG},
+ {i: 12, as: AAND, a1: C_LOREG, a6: C_REG},
+ {i: 12, as: AAND, a1: C_LAUTO, a6: C_REG},
+ {i: 6, as: AANDW, a1: C_REG, a2: C_REG, a6: C_REG},
+ {i: 6, as: AANDW, a1: C_REG, a6: C_REG},
+ {i: 24, as: AANDW, a1: C_LCON, a6: C_REG},
+ {i: 12, as: AANDW, a1: C_LOREG, a6: C_REG},
+ {i: 12, as: AANDW, a1: C_LAUTO, a6: C_REG},
+ {i: 7, as: ASLD, a1: C_REG, a6: C_REG},
+ {i: 7, as: ASLD, a1: C_REG, a2: C_REG, a6: C_REG},
+ {i: 7, as: ASLD, a1: C_SCON, a2: C_REG, a6: C_REG},
+ {i: 7, as: ASLD, a1: C_SCON, a6: C_REG},
+ {i: 13, as: ARNSBG, a1: C_SCON, a3: C_SCON, a4: C_SCON, a5: C_REG, a6: C_REG},
// compare and swap
- Optab{i: 79, as: ACSG, a1: C_REG, a2: C_REG, a6: C_SOREG},
+ {i: 79, as: ACSG, a1: C_REG, a2: C_REG, a6: C_SOREG},
// floating point
- Optab{i: 32, as: AFADD, a1: C_FREG, a6: C_FREG},
- Optab{i: 33, as: AFABS, a1: C_FREG, a6: C_FREG},
- Optab{i: 33, as: AFABS, a6: C_FREG},
- Optab{i: 34, as: AFMADD, a1: C_FREG, a2: C_FREG, a6: C_FREG},
- Optab{i: 32, as: AFMUL, a1: C_FREG, a6: C_FREG},
- Optab{i: 36, as: AFMOVD, a1: C_LAUTO, a6: C_FREG},
- Optab{i: 36, as: AFMOVD, a1: C_LOREG, a6: C_FREG},
- Optab{i: 75, as: AFMOVD, a1: C_ADDR, a6: C_FREG},
- Optab{i: 35, as: AFMOVD, a1: C_FREG, a6: C_LAUTO},
- Optab{i: 35, as: AFMOVD, a1: C_FREG, a6: C_LOREG},
- Optab{i: 74, as: AFMOVD, a1: C_FREG, a6: C_ADDR},
- Optab{i: 67, as: AFMOVD, a1: C_ZCON, a6: C_FREG},
- Optab{i: 81, as: ALDGR, a1: C_REG, a6: C_FREG},
- Optab{i: 81, as: ALGDR, a1: C_FREG, a6: C_REG},
- Optab{i: 82, as: ACEFBRA, a1: C_REG, a6: C_FREG},
- Optab{i: 83, as: ACFEBRA, a1: C_FREG, a6: C_REG},
- Optab{i: 48, as: AFIEBR, a1: C_SCON, a2: C_FREG, a6: C_FREG},
- Optab{i: 49, as: ACPSDR, a1: C_FREG, a2: C_FREG, a6: C_FREG},
- Optab{i: 50, as: ALTDBR, a1: C_FREG, a6: C_FREG},
- Optab{i: 51, as: ATCDB, a1: C_FREG, a6: C_SCON},
+ {i: 32, as: AFADD, a1: C_FREG, a6: C_FREG},
+ {i: 33, as: AFABS, a1: C_FREG, a6: C_FREG},
+ {i: 33, as: AFABS, a6: C_FREG},
+ {i: 34, as: AFMADD, a1: C_FREG, a2: C_FREG, a6: C_FREG},
+ {i: 32, as: AFMUL, a1: C_FREG, a6: C_FREG},
+ {i: 36, as: AFMOVD, a1: C_LAUTO, a6: C_FREG},
+ {i: 36, as: AFMOVD, a1: C_LOREG, a6: C_FREG},
+ {i: 75, as: AFMOVD, a1: C_ADDR, a6: C_FREG},
+ {i: 35, as: AFMOVD, a1: C_FREG, a6: C_LAUTO},
+ {i: 35, as: AFMOVD, a1: C_FREG, a6: C_LOREG},
+ {i: 74, as: AFMOVD, a1: C_FREG, a6: C_ADDR},
+ {i: 67, as: AFMOVD, a1: C_ZCON, a6: C_FREG},
+ {i: 81, as: ALDGR, a1: C_REG, a6: C_FREG},
+ {i: 81, as: ALGDR, a1: C_FREG, a6: C_REG},
+ {i: 82, as: ACEFBRA, a1: C_REG, a6: C_FREG},
+ {i: 83, as: ACFEBRA, a1: C_FREG, a6: C_REG},
+ {i: 48, as: AFIEBR, a1: C_SCON, a2: C_FREG, a6: C_FREG},
+ {i: 49, as: ACPSDR, a1: C_FREG, a2: C_FREG, a6: C_FREG},
+ {i: 50, as: ALTDBR, a1: C_FREG, a6: C_FREG},
+ {i: 51, as: ATCDB, a1: C_FREG, a6: C_SCON},
// load symbol address (plus offset)
- Optab{i: 19, as: AMOVD, a1: C_SYMADDR, a6: C_REG},
- Optab{i: 93, as: AMOVD, a1: C_GOTADDR, a6: C_REG},
- Optab{i: 94, as: AMOVD, a1: C_TLS_LE, a6: C_REG},
- Optab{i: 95, as: AMOVD, a1: C_TLS_IE, a6: C_REG},
+ {i: 19, as: AMOVD, a1: C_SYMADDR, a6: C_REG},
+ {i: 93, as: AMOVD, a1: C_GOTADDR, a6: C_REG},
+ {i: 94, as: AMOVD, a1: C_TLS_LE, a6: C_REG},
+ {i: 95, as: AMOVD, a1: C_TLS_IE, a6: C_REG},
// system call
- Optab{i: 5, as: ASYSCALL},
- Optab{i: 77, as: ASYSCALL, a1: C_SCON},
+ {i: 5, as: ASYSCALL},
+ {i: 77, as: ASYSCALL, a1: C_SCON},
// branch
- Optab{i: 16, as: ABEQ, a6: C_SBRA},
- Optab{i: 11, as: ABR, a6: C_LBRA},
- Optab{i: 16, as: ABC, a1: C_SCON, a2: C_REG, a6: C_LBRA},
- Optab{i: 18, as: ABR, a6: C_REG},
- Optab{i: 18, as: ABR, a1: C_REG, a6: C_REG},
- Optab{i: 15, as: ABR, a6: C_ZOREG},
- Optab{i: 15, as: ABC, a6: C_ZOREG},
- Optab{i: 89, as: ACMPBEQ, a1: C_REG, a2: C_REG, a6: C_SBRA},
- Optab{i: 90, as: ACMPBEQ, a1: C_REG, a3: C_ADDCON, a6: C_SBRA},
- Optab{i: 90, as: ACMPBEQ, a1: C_REG, a3: C_SCON, a6: C_SBRA},
- Optab{i: 89, as: ACMPUBEQ, a1: C_REG, a2: C_REG, a6: C_SBRA},
- Optab{i: 90, as: ACMPUBEQ, a1: C_REG, a3: C_ANDCON, a6: C_SBRA},
+ {i: 16, as: ABEQ, a6: C_SBRA},
+ {i: 11, as: ABR, a6: C_LBRA},
+ {i: 16, as: ABC, a1: C_SCON, a2: C_REG, a6: C_LBRA},
+ {i: 18, as: ABR, a6: C_REG},
+ {i: 18, as: ABR, a1: C_REG, a6: C_REG},
+ {i: 15, as: ABR, a6: C_ZOREG},
+ {i: 15, as: ABC, a6: C_ZOREG},
+ {i: 89, as: ACMPBEQ, a1: C_REG, a2: C_REG, a6: C_SBRA},
+ {i: 90, as: ACMPBEQ, a1: C_REG, a3: C_ADDCON, a6: C_SBRA},
+ {i: 90, as: ACMPBEQ, a1: C_REG, a3: C_SCON, a6: C_SBRA},
+ {i: 89, as: ACMPUBEQ, a1: C_REG, a2: C_REG, a6: C_SBRA},
+ {i: 90, as: ACMPUBEQ, a1: C_REG, a3: C_ANDCON, a6: C_SBRA},
// move on condition
- Optab{i: 17, as: AMOVDEQ, a1: C_REG, a6: C_REG},
+ {i: 17, as: AMOVDEQ, a1: C_REG, a6: C_REG},
// find leftmost one
- Optab{i: 8, as: AFLOGR, a1: C_REG, a6: C_REG},
+ {i: 8, as: AFLOGR, a1: C_REG, a6: C_REG},
// population count
- Optab{i: 9, as: APOPCNT, a1: C_REG, a6: C_REG},
+ {i: 9, as: APOPCNT, a1: C_REG, a6: C_REG},
// compare
- Optab{i: 70, as: ACMP, a1: C_REG, a6: C_REG},
- Optab{i: 71, as: ACMP, a1: C_REG, a6: C_LCON},
- Optab{i: 70, as: ACMPU, a1: C_REG, a6: C_REG},
- Optab{i: 71, as: ACMPU, a1: C_REG, a6: C_LCON},
- Optab{i: 70, as: AFCMPO, a1: C_FREG, a6: C_FREG},
- Optab{i: 70, as: AFCMPO, a1: C_FREG, a2: C_REG, a6: C_FREG},
+ {i: 70, as: ACMP, a1: C_REG, a6: C_REG},
+ {i: 71, as: ACMP, a1: C_REG, a6: C_LCON},
+ {i: 70, as: ACMPU, a1: C_REG, a6: C_REG},
+ {i: 71, as: ACMPU, a1: C_REG, a6: C_LCON},
+ {i: 70, as: AFCMPO, a1: C_FREG, a6: C_FREG},
+ {i: 70, as: AFCMPO, a1: C_FREG, a2: C_REG, a6: C_FREG},
// test under mask
- Optab{i: 91, as: ATMHH, a1: C_REG, a6: C_ANDCON},
+ {i: 91, as: ATMHH, a1: C_REG, a6: C_ANDCON},
// insert program mask
- Optab{i: 92, as: AIPM, a1: C_REG},
+ {i: 92, as: AIPM, a1: C_REG},
// 32-bit access registers
- Optab{i: 68, as: AMOVW, a1: C_AREG, a6: C_REG},
- Optab{i: 68, as: AMOVWZ, a1: C_AREG, a6: C_REG},
- Optab{i: 69, as: AMOVW, a1: C_REG, a6: C_AREG},
- Optab{i: 69, as: AMOVWZ, a1: C_REG, a6: C_AREG},
+ {i: 68, as: AMOVW, a1: C_AREG, a6: C_REG},
+ {i: 68, as: AMOVWZ, a1: C_AREG, a6: C_REG},
+ {i: 69, as: AMOVW, a1: C_REG, a6: C_AREG},
+ {i: 69, as: AMOVWZ, a1: C_REG, a6: C_AREG},
// macros
- Optab{i: 96, as: ACLEAR, a1: C_LCON, a6: C_LOREG},
- Optab{i: 96, as: ACLEAR, a1: C_LCON, a6: C_LAUTO},
+ {i: 96, as: ACLEAR, a1: C_LCON, a6: C_LOREG},
+ {i: 96, as: ACLEAR, a1: C_LCON, a6: C_LAUTO},
// load/store multiple
- Optab{i: 97, as: ASTMG, a1: C_REG, a2: C_REG, a6: C_LOREG},
- Optab{i: 97, as: ASTMG, a1: C_REG, a2: C_REG, a6: C_LAUTO},
- Optab{i: 98, as: ALMG, a1: C_LOREG, a2: C_REG, a6: C_REG},
- Optab{i: 98, as: ALMG, a1: C_LAUTO, a2: C_REG, a6: C_REG},
+ {i: 97, as: ASTMG, a1: C_REG, a2: C_REG, a6: C_LOREG},
+ {i: 97, as: ASTMG, a1: C_REG, a2: C_REG, a6: C_LAUTO},
+ {i: 98, as: ALMG, a1: C_LOREG, a2: C_REG, a6: C_REG},
+ {i: 98, as: ALMG, a1: C_LAUTO, a2: C_REG, a6: C_REG},
// bytes
- Optab{i: 40, as: ABYTE, a1: C_SCON},
- Optab{i: 40, as: AWORD, a1: C_LCON},
- Optab{i: 31, as: ADWORD, a1: C_LCON},
- Optab{i: 31, as: ADWORD, a1: C_DCON},
+ {i: 40, as: ABYTE, a1: C_SCON},
+ {i: 40, as: AWORD, a1: C_LCON},
+ {i: 31, as: ADWORD, a1: C_LCON},
+ {i: 31, as: ADWORD, a1: C_DCON},
// fast synchronization
- Optab{i: 80, as: ASYNC},
+ {i: 80, as: ASYNC},
// store clock
- Optab{i: 88, as: ASTCK, a6: C_SAUTO},
- Optab{i: 88, as: ASTCK, a6: C_SOREG},
+ {i: 88, as: ASTCK, a6: C_SAUTO},
+ {i: 88, as: ASTCK, a6: C_SOREG},
// storage and storage
- Optab{i: 84, as: AMVC, a1: C_SCON, a3: C_LOREG, a6: C_LOREG},
- Optab{i: 84, as: AMVC, a1: C_SCON, a3: C_LOREG, a6: C_LAUTO},
- Optab{i: 84, as: AMVC, a1: C_SCON, a3: C_LAUTO, a6: C_LAUTO},
+ {i: 84, as: AMVC, a1: C_SCON, a3: C_LOREG, a6: C_LOREG},
+ {i: 84, as: AMVC, a1: C_SCON, a3: C_LOREG, a6: C_LAUTO},
+ {i: 84, as: AMVC, a1: C_SCON, a3: C_LAUTO, a6: C_LAUTO},
// address
- Optab{i: 85, as: ALARL, a1: C_LCON, a6: C_REG},
- Optab{i: 85, as: ALARL, a1: C_SYMADDR, a6: C_REG},
- Optab{i: 86, as: ALA, a1: C_SOREG, a6: C_REG},
- Optab{i: 86, as: ALA, a1: C_SAUTO, a6: C_REG},
- Optab{i: 87, as: AEXRL, a1: C_SYMADDR, a6: C_REG},
+ {i: 85, as: ALARL, a1: C_LCON, a6: C_REG},
+ {i: 85, as: ALARL, a1: C_SYMADDR, a6: C_REG},
+ {i: 86, as: ALA, a1: C_SOREG, a6: C_REG},
+ {i: 86, as: ALA, a1: C_SAUTO, a6: C_REG},
+ {i: 87, as: AEXRL, a1: C_SYMADDR, a6: C_REG},
// undefined (deliberate illegal instruction)
- Optab{i: 78, as: obj.AUNDEF},
+ {i: 78, as: obj.AUNDEF},
// vector instructions
// VRX store
- Optab{i: 100, as: AVST, a1: C_VREG, a6: C_SOREG},
- Optab{i: 100, as: AVST, a1: C_VREG, a6: C_SAUTO},
- Optab{i: 100, as: AVSTEG, a1: C_SCON, a2: C_VREG, a6: C_SOREG},
- Optab{i: 100, as: AVSTEG, a1: C_SCON, a2: C_VREG, a6: C_SAUTO},
+ {i: 100, as: AVST, a1: C_VREG, a6: C_SOREG},
+ {i: 100, as: AVST, a1: C_VREG, a6: C_SAUTO},
+ {i: 100, as: AVSTEG, a1: C_SCON, a2: C_VREG, a6: C_SOREG},
+ {i: 100, as: AVSTEG, a1: C_SCON, a2: C_VREG, a6: C_SAUTO},
// VRX load
- Optab{i: 101, as: AVL, a1: C_SOREG, a6: C_VREG},
- Optab{i: 101, as: AVL, a1: C_SAUTO, a6: C_VREG},
- Optab{i: 101, as: AVLEG, a1: C_SCON, a3: C_SOREG, a6: C_VREG},
- Optab{i: 101, as: AVLEG, a1: C_SCON, a3: C_SAUTO, a6: C_VREG},
+ {i: 101, as: AVL, a1: C_SOREG, a6: C_VREG},
+ {i: 101, as: AVL, a1: C_SAUTO, a6: C_VREG},
+ {i: 101, as: AVLEG, a1: C_SCON, a3: C_SOREG, a6: C_VREG},
+ {i: 101, as: AVLEG, a1: C_SCON, a3: C_SAUTO, a6: C_VREG},
// VRV scatter
- Optab{i: 102, as: AVSCEG, a1: C_SCON, a2: C_VREG, a6: C_SOREG},
- Optab{i: 102, as: AVSCEG, a1: C_SCON, a2: C_VREG, a6: C_SAUTO},
+ {i: 102, as: AVSCEG, a1: C_SCON, a2: C_VREG, a6: C_SOREG},
+ {i: 102, as: AVSCEG, a1: C_SCON, a2: C_VREG, a6: C_SAUTO},
// VRV gather
- Optab{i: 103, as: AVGEG, a1: C_SCON, a3: C_SOREG, a6: C_VREG},
- Optab{i: 103, as: AVGEG, a1: C_SCON, a3: C_SAUTO, a6: C_VREG},
+ {i: 103, as: AVGEG, a1: C_SCON, a3: C_SOREG, a6: C_VREG},
+ {i: 103, as: AVGEG, a1: C_SCON, a3: C_SAUTO, a6: C_VREG},
// VRS element shift/rotate and load gr to/from vr element
- Optab{i: 104, as: AVESLG, a1: C_SCON, a2: C_VREG, a6: C_VREG},
- Optab{i: 104, as: AVESLG, a1: C_REG, a2: C_VREG, a6: C_VREG},
- Optab{i: 104, as: AVESLG, a1: C_SCON, a6: C_VREG},
- Optab{i: 104, as: AVESLG, a1: C_REG, a6: C_VREG},
- Optab{i: 104, as: AVLGVG, a1: C_SCON, a2: C_VREG, a6: C_REG},
- Optab{i: 104, as: AVLGVG, a1: C_REG, a2: C_VREG, a6: C_REG},
- Optab{i: 104, as: AVLVGG, a1: C_SCON, a2: C_REG, a6: C_VREG},
- Optab{i: 104, as: AVLVGG, a1: C_REG, a2: C_REG, a6: C_VREG},
+ {i: 104, as: AVESLG, a1: C_SCON, a2: C_VREG, a6: C_VREG},
+ {i: 104, as: AVESLG, a1: C_REG, a2: C_VREG, a6: C_VREG},
+ {i: 104, as: AVESLG, a1: C_SCON, a6: C_VREG},
+ {i: 104, as: AVESLG, a1: C_REG, a6: C_VREG},
+ {i: 104, as: AVLGVG, a1: C_SCON, a2: C_VREG, a6: C_REG},
+ {i: 104, as: AVLGVG, a1: C_REG, a2: C_VREG, a6: C_REG},
+ {i: 104, as: AVLVGG, a1: C_SCON, a2: C_REG, a6: C_VREG},
+ {i: 104, as: AVLVGG, a1: C_REG, a2: C_REG, a6: C_VREG},
// VRS store multiple
- Optab{i: 105, as: AVSTM, a1: C_VREG, a2: C_VREG, a6: C_SOREG},
- Optab{i: 105, as: AVSTM, a1: C_VREG, a2: C_VREG, a6: C_SAUTO},
+ {i: 105, as: AVSTM, a1: C_VREG, a2: C_VREG, a6: C_SOREG},
+ {i: 105, as: AVSTM, a1: C_VREG, a2: C_VREG, a6: C_SAUTO},
// VRS load multiple
- Optab{i: 106, as: AVLM, a1: C_SOREG, a2: C_VREG, a6: C_VREG},
- Optab{i: 106, as: AVLM, a1: C_SAUTO, a2: C_VREG, a6: C_VREG},
+ {i: 106, as: AVLM, a1: C_SOREG, a2: C_VREG, a6: C_VREG},
+ {i: 106, as: AVLM, a1: C_SAUTO, a2: C_VREG, a6: C_VREG},
// VRS store with length
- Optab{i: 107, as: AVSTL, a1: C_REG, a2: C_VREG, a6: C_SOREG},
- Optab{i: 107, as: AVSTL, a1: C_REG, a2: C_VREG, a6: C_SAUTO},
+ {i: 107, as: AVSTL, a1: C_REG, a2: C_VREG, a6: C_SOREG},
+ {i: 107, as: AVSTL, a1: C_REG, a2: C_VREG, a6: C_SAUTO},
// VRS load with length
- Optab{i: 108, as: AVLL, a1: C_REG, a3: C_SOREG, a6: C_VREG},
- Optab{i: 108, as: AVLL, a1: C_REG, a3: C_SAUTO, a6: C_VREG},
+ {i: 108, as: AVLL, a1: C_REG, a3: C_SOREG, a6: C_VREG},
+ {i: 108, as: AVLL, a1: C_REG, a3: C_SAUTO, a6: C_VREG},
// VRI-a
- Optab{i: 109, as: AVGBM, a1: C_ANDCON, a6: C_VREG},
- Optab{i: 109, as: AVZERO, a6: C_VREG},
- Optab{i: 109, as: AVREPIG, a1: C_ADDCON, a6: C_VREG},
- Optab{i: 109, as: AVREPIG, a1: C_SCON, a6: C_VREG},
- Optab{i: 109, as: AVLEIG, a1: C_SCON, a3: C_ADDCON, a6: C_VREG},
- Optab{i: 109, as: AVLEIG, a1: C_SCON, a3: C_SCON, a6: C_VREG},
+ {i: 109, as: AVGBM, a1: C_ANDCON, a6: C_VREG},
+ {i: 109, as: AVZERO, a6: C_VREG},
+ {i: 109, as: AVREPIG, a1: C_ADDCON, a6: C_VREG},
+ {i: 109, as: AVREPIG, a1: C_SCON, a6: C_VREG},
+ {i: 109, as: AVLEIG, a1: C_SCON, a3: C_ADDCON, a6: C_VREG},
+ {i: 109, as: AVLEIG, a1: C_SCON, a3: C_SCON, a6: C_VREG},
// VRI-b generate mask
- Optab{i: 110, as: AVGMG, a1: C_SCON, a3: C_SCON, a6: C_VREG},
+ {i: 110, as: AVGMG, a1: C_SCON, a3: C_SCON, a6: C_VREG},
// VRI-c replicate
- Optab{i: 111, as: AVREPG, a1: C_UCON, a2: C_VREG, a6: C_VREG},
+ {i: 111, as: AVREPG, a1: C_UCON, a2: C_VREG, a6: C_VREG},
// VRI-d element rotate and insert under mask and
// shift left double by byte
- Optab{i: 112, as: AVERIMG, a1: C_SCON, a2: C_VREG, a3: C_VREG, a6: C_VREG},
- Optab{i: 112, as: AVSLDB, a1: C_SCON, a2: C_VREG, a3: C_VREG, a6: C_VREG},
+ {i: 112, as: AVERIMG, a1: C_SCON, a2: C_VREG, a3: C_VREG, a6: C_VREG},
+ {i: 112, as: AVSLDB, a1: C_SCON, a2: C_VREG, a3: C_VREG, a6: C_VREG},
// VRI-d fp test data class immediate
- Optab{i: 113, as: AVFTCIDB, a1: C_SCON, a2: C_VREG, a6: C_VREG},
+ {i: 113, as: AVFTCIDB, a1: C_SCON, a2: C_VREG, a6: C_VREG},
// VRR-a load reg
- Optab{i: 114, as: AVLR, a1: C_VREG, a6: C_VREG},
+ {i: 114, as: AVLR, a1: C_VREG, a6: C_VREG},
// VRR-a compare
- Optab{i: 115, as: AVECG, a1: C_VREG, a6: C_VREG},
+ {i: 115, as: AVECG, a1: C_VREG, a6: C_VREG},
// VRR-b
- Optab{i: 117, as: AVCEQG, a1: C_VREG, a2: C_VREG, a6: C_VREG},
- Optab{i: 117, as: AVFAEF, a1: C_VREG, a2: C_VREG, a6: C_VREG},
- Optab{i: 117, as: AVPKSG, a1: C_VREG, a2: C_VREG, a6: C_VREG},
+ {i: 117, as: AVCEQG, a1: C_VREG, a2: C_VREG, a6: C_VREG},
+ {i: 117, as: AVFAEF, a1: C_VREG, a2: C_VREG, a6: C_VREG},
+ {i: 117, as: AVPKSG, a1: C_VREG, a2: C_VREG, a6: C_VREG},
// VRR-c
- Optab{i: 118, as: AVAQ, a1: C_VREG, a2: C_VREG, a6: C_VREG},
- Optab{i: 118, as: AVAQ, a1: C_VREG, a6: C_VREG},
- Optab{i: 118, as: AVNOT, a1: C_VREG, a6: C_VREG},
- Optab{i: 123, as: AVPDI, a1: C_SCON, a2: C_VREG, a3: C_VREG, a6: C_VREG},
+ {i: 118, as: AVAQ, a1: C_VREG, a2: C_VREG, a6: C_VREG},
+ {i: 118, as: AVAQ, a1: C_VREG, a6: C_VREG},
+ {i: 118, as: AVNOT, a1: C_VREG, a6: C_VREG},
+ {i: 123, as: AVPDI, a1: C_SCON, a2: C_VREG, a3: C_VREG, a6: C_VREG},
// VRR-c shifts
- Optab{i: 119, as: AVERLLVG, a1: C_VREG, a2: C_VREG, a6: C_VREG},
- Optab{i: 119, as: AVERLLVG, a1: C_VREG, a6: C_VREG},
+ {i: 119, as: AVERLLVG, a1: C_VREG, a2: C_VREG, a6: C_VREG},
+ {i: 119, as: AVERLLVG, a1: C_VREG, a6: C_VREG},
// VRR-d
- Optab{i: 120, as: AVACQ, a1: C_VREG, a2: C_VREG, a3: C_VREG, a6: C_VREG},
+ {i: 120, as: AVACQ, a1: C_VREG, a2: C_VREG, a3: C_VREG, a6: C_VREG},
// VRR-e
- Optab{i: 121, as: AVSEL, a1: C_VREG, a2: C_VREG, a3: C_VREG, a6: C_VREG},
+ {i: 121, as: AVSEL, a1: C_VREG, a2: C_VREG, a3: C_VREG, a6: C_VREG},
// VRR-f
- Optab{i: 122, as: AVLVGP, a1: C_REG, a2: C_REG, a6: C_VREG},
+ {i: 122, as: AVLVGP, a1: C_REG, a2: C_REG, a6: C_VREG},
}
var oprange [ALAST & obj.AMask][]Optab
diff --git a/src/cmd/link/internal/ld/dwarf_test.go b/src/cmd/link/internal/ld/dwarf_test.go
index f6ed8d3401..190a54c4c3 100644
--- a/src/cmd/link/internal/ld/dwarf_test.go
+++ b/src/cmd/link/internal/ld/dwarf_test.go
@@ -164,9 +164,9 @@ func main() {
}`
want := map[string]map[string]bool{
- "main.Foo": map[string]bool{"v": false},
- "main.Bar": map[string]bool{"Foo": true, "name": false},
- "main.Baz": map[string]bool{"Foo": true, "name": false},
+ "main.Foo": {"v": false},
+ "main.Bar": {"Foo": true, "name": false},
+ "main.Baz": {"Foo": true, "name": false},
}
dir, err := ioutil.TempDir("", "TestEmbeddedStructMarker")
diff --git a/src/cmd/link/internal/wasm/asm.go b/src/cmd/link/internal/wasm/asm.go
index 8ab58b200f..c80e81e5b3 100644
--- a/src/cmd/link/internal/wasm/asm.go
+++ b/src/cmd/link/internal/wasm/asm.go
@@ -54,21 +54,21 @@ type wasmFuncType struct {
}
var wasmFuncTypes = map[string]*wasmFuncType{
- "_rt0_wasm_js": &wasmFuncType{Params: []byte{}}, //
- "wasm_export_run": &wasmFuncType{Params: []byte{I32, I32}}, // argc, argv
- "wasm_export_resume": &wasmFuncType{Params: []byte{}}, //
- "wasm_export_getsp": &wasmFuncType{Results: []byte{I32}}, // sp
- "wasm_pc_f_loop": &wasmFuncType{Params: []byte{}}, //
- "runtime.wasmMove": &wasmFuncType{Params: []byte{I32, I32, I32}}, // dst, src, len
- "runtime.wasmZero": &wasmFuncType{Params: []byte{I32, I32}}, // ptr, len
- "runtime.wasmDiv": &wasmFuncType{Params: []byte{I64, I64}, Results: []byte{I64}}, // x, y -> x/y
- "runtime.wasmTruncS": &wasmFuncType{Params: []byte{F64}, Results: []byte{I64}}, // x -> int(x)
- "runtime.wasmTruncU": &wasmFuncType{Params: []byte{F64}, Results: []byte{I64}}, // x -> uint(x)
- "runtime.gcWriteBarrier": &wasmFuncType{Params: []byte{I64, I64}}, // ptr, val
- "cmpbody": &wasmFuncType{Params: []byte{I64, I64, I64, I64}, Results: []byte{I64}}, // a, alen, b, blen -> -1/0/1
- "memeqbody": &wasmFuncType{Params: []byte{I64, I64, I64}, Results: []byte{I64}}, // a, b, len -> 0/1
- "memcmp": &wasmFuncType{Params: []byte{I32, I32, I32}, Results: []byte{I32}}, // a, b, len -> <0/0/>0
- "memchr": &wasmFuncType{Params: []byte{I32, I32, I32}, Results: []byte{I32}}, // s, c, len -> index
+ "_rt0_wasm_js": {Params: []byte{}}, //
+ "wasm_export_run": {Params: []byte{I32, I32}}, // argc, argv
+ "wasm_export_resume": {Params: []byte{}}, //
+ "wasm_export_getsp": {Results: []byte{I32}}, // sp
+ "wasm_pc_f_loop": {Params: []byte{}}, //
+ "runtime.wasmMove": {Params: []byte{I32, I32, I32}}, // dst, src, len
+ "runtime.wasmZero": {Params: []byte{I32, I32}}, // ptr, len
+ "runtime.wasmDiv": {Params: []byte{I64, I64}, Results: []byte{I64}}, // x, y -> x/y
+ "runtime.wasmTruncS": {Params: []byte{F64}, Results: []byte{I64}}, // x -> int(x)
+ "runtime.wasmTruncU": {Params: []byte{F64}, Results: []byte{I64}}, // x -> uint(x)
+ "runtime.gcWriteBarrier": {Params: []byte{I64, I64}}, // ptr, val
+ "cmpbody": {Params: []byte{I64, I64, I64, I64}, Results: []byte{I64}}, // a, alen, b, blen -> -1/0/1
+ "memeqbody": {Params: []byte{I64, I64, I64}, Results: []byte{I64}}, // a, b, len -> 0/1
+ "memcmp": {Params: []byte{I32, I32, I32}, Results: []byte{I32}}, // a, b, len -> <0/0/>0
+ "memchr": {Params: []byte{I32, I32, I32}, Results: []byte{I32}}, // s, c, len -> index
}
func assignAddress(ctxt *ld.Link, sect *sym.Section, n int, s *sym.Symbol, va uint64, isTramp bool) (*sym.Section, int, uint64) {
@@ -105,12 +105,12 @@ func asmb2(ctxt *ld.Link) {
// For normal Go functions the return value is
// 0 if the function returned normally or
// 1 if the stack needs to be unwound.
- &wasmFuncType{Results: []byte{I32}},
+ {Results: []byte{I32}},
}
// collect host imports (functions that get imported from the WebAssembly host, usually JavaScript)
hostImports := []*wasmFunc{
- &wasmFunc{
+ {
Name: "debug",
Type: lookupType(&wasmFuncType{Params: []byte{I32}}, &types),
},
diff --git a/src/cmd/trace/pprof.go b/src/cmd/trace/pprof.go
index 3389d2799b..a31d71b013 100644
--- a/src/cmd/trace/pprof.go
+++ b/src/cmd/trace/pprof.go
@@ -358,7 +358,7 @@ func buildProfile(prof map[uint64]Record) *profile.Profile {
ID: uint64(len(p.Location) + 1),
Address: frame.PC,
Line: []profile.Line{
- profile.Line{
+ {
Function: fn,
Line: int64(frame.Line),
},