cmd/8g, cmd/old8a: stop renaming x86 import to i386
Change-Id: If2872e73da4daa4ff1912883d30c8fc9754ef552
Reviewed-on: https://go-review.googlesource.com/6894
Reviewed-by: Rob Pike <r@golang.org>
diff --git a/src/cmd/8g/cgen.go b/src/cmd/8g/cgen.go
index 0b21045..aefae7e 100644
--- a/src/cmd/8g/cgen.go
+++ b/src/cmd/8g/cgen.go
@@ -7,7 +7,7 @@
import (
"cmd/internal/gc"
"cmd/internal/obj"
- i386 "cmd/internal/obj/x86"
+ "cmd/internal/obj/x86"
"fmt"
)
@@ -272,7 +272,7 @@
gc.OMUL:
a = optoas(int(n.Op), nl.Type)
- if a == i386.AIMULB {
+ if a == x86.AIMULB {
cgen_bmul(int(n.Op), nl, nr, res)
break
}
@@ -331,7 +331,7 @@
if gc.Isconst(nl, gc.CTSTR) {
var n1 gc.Node
regalloc(&n1, gc.Types[gc.Tptr], res)
- p1 := gins(i386.ALEAL, nil, &n1)
+ p1 := gins(x86.ALEAL, nil, &n1)
gc.Datastring(nl.Val.U.Sval, &p1.From)
gmove(&n1, res)
regfree(&n1)
@@ -529,9 +529,9 @@
var zero gc.Node
gc.Nodconst(&zero, gc.Types[gc.TINT32], 0)
- gins(i386.ACMPL, &hi, &zero)
+ gins(x86.ACMPL, &hi, &zero)
splitclean()
- return gc.Gbranch(i386.AJNE, nil, +1)
+ return gc.Gbranch(x86.AJNE, nil, +1)
}
/*
@@ -565,7 +565,7 @@
clearfat(&n1)
var n2 gc.Node
regalloc(&n2, gc.Types[gc.Tptr], res)
- gins(i386.ALEAL, &n1, &n2)
+ gins(x86.ALEAL, &n1, &n2)
gmove(&n2, res)
regfree(&n2)
return
@@ -578,7 +578,7 @@
}
var n1 gc.Node
regalloc(&n1, gc.Types[gc.Tptr], res)
- gins(i386.ALEAL, n, &n1)
+ gins(x86.ALEAL, n, &n1)
gmove(&n1, res)
regfree(&n1)
return
@@ -746,7 +746,7 @@
if gc.Isconst(nl, gc.CTSTR) {
regalloc(&n3, gc.Types[gc.Tptr], res)
- p1 := gins(i386.ALEAL, nil, &n3)
+ p1 := gins(x86.ALEAL, nil, &n3)
gc.Datastring(nl.Val.U.Sval, &p1.From)
p1.From.Scale = 1
p1.From.Index = n2.Val.U.Reg
@@ -769,7 +769,7 @@
} else // nothing to do
if w == 1 || w == 2 || w == 4 || w == 8 {
// LEAL (n3)(n2*w), n3
- p1 := gins(i386.ALEAL, &n2, &n3)
+ p1 := gins(x86.ALEAL, &n2, &n3)
p1.From.Scale = int16(w)
p1.From.Type = obj.TYPE_MEM
@@ -858,7 +858,7 @@
// Increase the refcount of the register so that igen's caller
// has to call regfree.
case gc.OINDREG:
- if n.Val.U.Reg != i386.REG_SP {
+ if n.Val.U.Reg != x86.REG_SP {
reg[n.Val.U.Reg]++
}
*a = *n
@@ -914,7 +914,7 @@
fp := gc.Structfirst(&flist, gc.Getoutarg(n.Left.Type))
*a = gc.Node{}
a.Op = gc.OINDREG
- a.Val.U.Reg = i386.REG_SP
+ a.Val.U.Reg = x86.REG_SP
a.Addable = 1
a.Xoffset = fp.Width
a.Type = n.Type
@@ -1030,9 +1030,9 @@
var n1 gc.Node
gc.Nodconst(&n1, n.Type, 0)
gins(optoas(gc.OCMP, n.Type), n, &n1)
- a := i386.AJNE
+ a := x86.AJNE
if !true_ {
- a = i386.AJEQ
+ a = x86.AJEQ
}
gc.Patch(gc.Gbranch(a, n.Type, likely), to)
return
@@ -1228,9 +1228,9 @@
var n2 gc.Node
gc.Nodconst(&n2, n.Type, 0)
gins(optoas(gc.OCMP, n.Type), &n1, &n2)
- a := i386.AJNE
+ a := x86.AJNE
if !true_ {
- a = i386.AJEQ
+ a = x86.AJEQ
}
gc.Patch(gc.Gbranch(a, n.Type, likely), to)
regfree(&n1)
@@ -1355,9 +1355,9 @@
}
var dst gc.Node
- gc.Nodreg(&dst, gc.Types[gc.Tptr], i386.REG_DI)
+ gc.Nodreg(&dst, gc.Types[gc.Tptr], x86.REG_DI)
var src gc.Node
- gc.Nodreg(&src, gc.Types[gc.Tptr], i386.REG_SI)
+ gc.Nodreg(&src, gc.Types[gc.Tptr], x86.REG_SI)
var tsrc gc.Node
gc.Tempname(&tsrc, gc.Types[gc.Tptr])
@@ -1392,40 +1392,40 @@
// the src and dst overlap, then reverse direction
if osrc < odst && int64(odst) < int64(osrc)+w {
// reverse direction
- gins(i386.ASTD, nil, nil) // set direction flag
+ gins(x86.ASTD, nil, nil) // set direction flag
if c > 0 {
- gconreg(i386.AADDL, w-1, i386.REG_SI)
- gconreg(i386.AADDL, w-1, i386.REG_DI)
+ gconreg(x86.AADDL, w-1, x86.REG_SI)
+ gconreg(x86.AADDL, w-1, x86.REG_DI)
- gconreg(i386.AMOVL, int64(c), i386.REG_CX)
- gins(i386.AREP, nil, nil) // repeat
- gins(i386.AMOVSB, nil, nil) // MOVB *(SI)-,*(DI)-
+ gconreg(x86.AMOVL, int64(c), x86.REG_CX)
+ gins(x86.AREP, nil, nil) // repeat
+ gins(x86.AMOVSB, nil, nil) // MOVB *(SI)-,*(DI)-
}
if q > 0 {
if c > 0 {
- gconreg(i386.AADDL, -3, i386.REG_SI)
- gconreg(i386.AADDL, -3, i386.REG_DI)
+ gconreg(x86.AADDL, -3, x86.REG_SI)
+ gconreg(x86.AADDL, -3, x86.REG_DI)
} else {
- gconreg(i386.AADDL, w-4, i386.REG_SI)
- gconreg(i386.AADDL, w-4, i386.REG_DI)
+ gconreg(x86.AADDL, w-4, x86.REG_SI)
+ gconreg(x86.AADDL, w-4, x86.REG_DI)
}
- gconreg(i386.AMOVL, int64(q), i386.REG_CX)
- gins(i386.AREP, nil, nil) // repeat
- gins(i386.AMOVSL, nil, nil) // MOVL *(SI)-,*(DI)-
+ gconreg(x86.AMOVL, int64(q), x86.REG_CX)
+ gins(x86.AREP, nil, nil) // repeat
+ gins(x86.AMOVSL, nil, nil) // MOVL *(SI)-,*(DI)-
}
// we leave with the flag clear
- gins(i386.ACLD, nil, nil)
+ gins(x86.ACLD, nil, nil)
} else {
- gins(i386.ACLD, nil, nil) // paranoia. TODO(rsc): remove?
+ gins(x86.ACLD, nil, nil) // paranoia. TODO(rsc): remove?
// normal direction
if q > 128 || (q >= 4 && gc.Nacl) {
- gconreg(i386.AMOVL, int64(q), i386.REG_CX)
- gins(i386.AREP, nil, nil) // repeat
- gins(i386.AMOVSL, nil, nil) // MOVL *(SI)+,*(DI)+
+ gconreg(x86.AMOVL, int64(q), x86.REG_CX)
+ gins(x86.AREP, nil, nil) // repeat
+ gins(x86.AMOVSL, nil, nil) // MOVL *(SI)+,*(DI)+
} else if q >= 4 {
p := gins(obj.ADUFFCOPY, nil, nil)
p.To.Type = obj.TYPE_ADDR
@@ -1435,7 +1435,7 @@
p.To.Offset = 10 * (128 - int64(q))
} else if !gc.Nacl && c == 0 {
var cx gc.Node
- gc.Nodreg(&cx, gc.Types[gc.TINT32], i386.REG_CX)
+ gc.Nodreg(&cx, gc.Types[gc.TINT32], x86.REG_CX)
// We don't need the MOVSL side-effect of updating SI and DI,
// and issuing a sequence of MOVLs directly is faster.
@@ -1451,13 +1451,13 @@
}
} else {
for q > 0 {
- gins(i386.AMOVSL, nil, nil) // MOVL *(SI)+,*(DI)+
+ gins(x86.AMOVSL, nil, nil) // MOVL *(SI)+,*(DI)+
q--
}
}
for c > 0 {
- gins(i386.AMOVSB, nil, nil) // MOVB *(SI)+,*(DI)+
+ gins(x86.AMOVSB, nil, nil) // MOVB *(SI)+,*(DI)+
c--
}
}
diff --git a/src/cmd/8g/cgen64.go b/src/cmd/8g/cgen64.go
index aec1e99..4c435f6 100644
--- a/src/cmd/8g/cgen64.go
+++ b/src/cmd/8g/cgen64.go
@@ -7,7 +7,7 @@
import (
"cmd/internal/gc"
"cmd/internal/obj"
- i386 "cmd/internal/obj/x86"
+ "cmd/internal/obj/x86"
)
/*
@@ -31,9 +31,9 @@
var hi1 gc.Node
var lo1 gc.Node
split64(res, &lo1, &hi1)
- gins(i386.ANEGL, nil, &lo1)
- gins(i386.AADCL, ncon(0), &hi1)
- gins(i386.ANEGL, nil, &hi1)
+ gins(x86.ANEGL, nil, &lo1)
+ gins(x86.AADCL, ncon(0), &hi1)
+ gins(x86.ANEGL, nil, &hi1)
splitclean()
return
@@ -42,8 +42,8 @@
var lo1 gc.Node
var hi1 gc.Node
split64(res, &lo1, &hi1)
- gins(i386.ANOTL, nil, &lo1)
- gins(i386.ANOTL, nil, &hi1)
+ gins(x86.ANOTL, nil, &lo1)
+ gins(x86.ANOTL, nil, &hi1)
splitclean()
return
@@ -78,11 +78,11 @@
}
var ax gc.Node
- gc.Nodreg(&ax, gc.Types[gc.TINT32], i386.REG_AX)
+ gc.Nodreg(&ax, gc.Types[gc.TINT32], x86.REG_AX)
var cx gc.Node
- gc.Nodreg(&cx, gc.Types[gc.TINT32], i386.REG_CX)
+ gc.Nodreg(&cx, gc.Types[gc.TINT32], x86.REG_CX)
var dx gc.Node
- gc.Nodreg(&dx, gc.Types[gc.TINT32], i386.REG_DX)
+ gc.Nodreg(&dx, gc.Types[gc.TINT32], x86.REG_DX)
// Setup for binary operation.
var hi1 gc.Node
@@ -99,19 +99,19 @@
switch n.Op {
// TODO: Constants
case gc.OADD:
- gins(i386.AMOVL, &lo1, &ax)
+ gins(x86.AMOVL, &lo1, &ax)
- gins(i386.AMOVL, &hi1, &dx)
- gins(i386.AADDL, &lo2, &ax)
- gins(i386.AADCL, &hi2, &dx)
+ gins(x86.AMOVL, &hi1, &dx)
+ gins(x86.AADDL, &lo2, &ax)
+ gins(x86.AADCL, &hi2, &dx)
// TODO: Constants.
case gc.OSUB:
- gins(i386.AMOVL, &lo1, &ax)
+ gins(x86.AMOVL, &lo1, &ax)
- gins(i386.AMOVL, &hi1, &dx)
- gins(i386.ASUBL, &lo2, &ax)
- gins(i386.ASBBL, &hi2, &dx)
+ gins(x86.AMOVL, &hi1, &dx)
+ gins(x86.ASUBL, &lo2, &ax)
+ gins(x86.ASBBL, &hi2, &dx)
// let's call the next two EX and FX.
case gc.OMUL:
@@ -122,30 +122,30 @@
regalloc(&fx, gc.Types[gc.TPTR32], nil)
// load args into DX:AX and EX:CX.
- gins(i386.AMOVL, &lo1, &ax)
+ gins(x86.AMOVL, &lo1, &ax)
- gins(i386.AMOVL, &hi1, &dx)
- gins(i386.AMOVL, &lo2, &cx)
- gins(i386.AMOVL, &hi2, &ex)
+ gins(x86.AMOVL, &hi1, &dx)
+ gins(x86.AMOVL, &lo2, &cx)
+ gins(x86.AMOVL, &hi2, &ex)
// if DX and EX are zero, use 32 x 32 -> 64 unsigned multiply.
- gins(i386.AMOVL, &dx, &fx)
+ gins(x86.AMOVL, &dx, &fx)
- gins(i386.AORL, &ex, &fx)
- p1 := gc.Gbranch(i386.AJNE, nil, 0)
- gins(i386.AMULL, &cx, nil) // implicit &ax
+ gins(x86.AORL, &ex, &fx)
+ p1 := gc.Gbranch(x86.AJNE, nil, 0)
+ gins(x86.AMULL, &cx, nil) // implicit &ax
p2 := gc.Gbranch(obj.AJMP, nil, 0)
gc.Patch(p1, gc.Pc)
// full 64x64 -> 64, from 32x32 -> 64.
- gins(i386.AIMULL, &cx, &dx)
+ gins(x86.AIMULL, &cx, &dx)
- gins(i386.AMOVL, &ax, &fx)
- gins(i386.AIMULL, &ex, &fx)
- gins(i386.AADDL, &dx, &fx)
- gins(i386.AMOVL, &cx, &dx)
- gins(i386.AMULL, &dx, nil) // implicit &ax
- gins(i386.AADDL, &fx, &dx)
+ gins(x86.AMOVL, &ax, &fx)
+ gins(x86.AIMULL, &ex, &fx)
+ gins(x86.AADDL, &dx, &fx)
+ gins(x86.AMOVL, &cx, &dx)
+ gins(x86.AMULL, &dx, nil) // implicit &ax
+ gins(x86.AADDL, &fx, &dx)
gc.Patch(p2, gc.Pc)
regfree(&ex)
@@ -168,22 +168,22 @@
// reverse during load to do the first 32 bits of rotate
v -= 32
- gins(i386.AMOVL, &lo1, &dx)
- gins(i386.AMOVL, &hi1, &ax)
+ gins(x86.AMOVL, &lo1, &dx)
+ gins(x86.AMOVL, &hi1, &ax)
} else {
- gins(i386.AMOVL, &lo1, &ax)
- gins(i386.AMOVL, &hi1, &dx)
+ gins(x86.AMOVL, &lo1, &ax)
+ gins(x86.AMOVL, &hi1, &dx)
}
if v == 0 {
} else // done
{
- gins(i386.AMOVL, &dx, &cx)
- p1 := gins(i386.ASHLL, ncon(uint32(v)), &dx)
- p1.From.Index = i386.REG_AX // double-width shift
+ gins(x86.AMOVL, &dx, &cx)
+ p1 := gins(x86.ASHLL, ncon(uint32(v)), &dx)
+ p1.From.Index = x86.REG_AX // double-width shift
p1.From.Scale = 0
- p1 = gins(i386.ASHLL, ncon(uint32(v)), &ax)
- p1.From.Index = i386.REG_CX // double-width shift
+ p1 = gins(x86.ASHLL, ncon(uint32(v)), &ax)
+ p1.From.Index = x86.REG_CX // double-width shift
p1.From.Scale = 0
}
@@ -196,8 +196,8 @@
}
splitclean()
split64(res, &lo2, &hi2)
- gins(i386.AMOVL, ncon(0), &lo2)
- gins(i386.AMOVL, ncon(0), &hi2)
+ gins(x86.AMOVL, ncon(0), &lo2)
+ gins(x86.AMOVL, ncon(0), &hi2)
splitclean()
return
}
@@ -209,71 +209,71 @@
split64(res, &lo2, &hi2)
gmove(&lo1, &hi2)
if v > 32 {
- gins(i386.ASHLL, ncon(uint32(v-32)), &hi2)
+ gins(x86.ASHLL, ncon(uint32(v-32)), &hi2)
}
- gins(i386.AMOVL, ncon(0), &lo2)
+ gins(x86.AMOVL, ncon(0), &lo2)
splitclean()
splitclean()
return
}
// general shift
- gins(i386.AMOVL, &lo1, &ax)
+ gins(x86.AMOVL, &lo1, &ax)
- gins(i386.AMOVL, &hi1, &dx)
- p1 := gins(i386.ASHLL, ncon(uint32(v)), &dx)
- p1.From.Index = i386.REG_AX // double-width shift
+ gins(x86.AMOVL, &hi1, &dx)
+ p1 := gins(x86.ASHLL, ncon(uint32(v)), &dx)
+ p1.From.Index = x86.REG_AX // double-width shift
p1.From.Scale = 0
- gins(i386.ASHLL, ncon(uint32(v)), &ax)
+ gins(x86.ASHLL, ncon(uint32(v)), &ax)
break
}
// load value into DX:AX.
- gins(i386.AMOVL, &lo1, &ax)
+ gins(x86.AMOVL, &lo1, &ax)
- gins(i386.AMOVL, &hi1, &dx)
+ gins(x86.AMOVL, &hi1, &dx)
// load shift value into register.
// if high bits are set, zero value.
var p1 *obj.Prog
if gc.Is64(r.Type) {
- gins(i386.ACMPL, &hi2, ncon(0))
- p1 = gc.Gbranch(i386.AJNE, nil, +1)
- gins(i386.AMOVL, &lo2, &cx)
+ gins(x86.ACMPL, &hi2, ncon(0))
+ p1 = gc.Gbranch(x86.AJNE, nil, +1)
+ gins(x86.AMOVL, &lo2, &cx)
} else {
cx.Type = gc.Types[gc.TUINT32]
gmove(r, &cx)
}
// if shift count is >=64, zero value
- gins(i386.ACMPL, &cx, ncon(64))
+ gins(x86.ACMPL, &cx, ncon(64))
p2 := gc.Gbranch(optoas(gc.OLT, gc.Types[gc.TUINT32]), nil, +1)
if p1 != nil {
gc.Patch(p1, gc.Pc)
}
- gins(i386.AXORL, &dx, &dx)
- gins(i386.AXORL, &ax, &ax)
+ gins(x86.AXORL, &dx, &dx)
+ gins(x86.AXORL, &ax, &ax)
gc.Patch(p2, gc.Pc)
// if shift count is >= 32, zero low.
- gins(i386.ACMPL, &cx, ncon(32))
+ gins(x86.ACMPL, &cx, ncon(32))
p1 = gc.Gbranch(optoas(gc.OLT, gc.Types[gc.TUINT32]), nil, +1)
- gins(i386.AMOVL, &ax, &dx)
- gins(i386.ASHLL, &cx, &dx) // SHLL only uses bottom 5 bits of count
- gins(i386.AXORL, &ax, &ax)
+ gins(x86.AMOVL, &ax, &dx)
+ gins(x86.ASHLL, &cx, &dx) // SHLL only uses bottom 5 bits of count
+ gins(x86.AXORL, &ax, &ax)
p2 = gc.Gbranch(obj.AJMP, nil, 0)
gc.Patch(p1, gc.Pc)
// general shift
- p1 = gins(i386.ASHLL, &cx, &dx)
+ p1 = gins(x86.ASHLL, &cx, &dx)
- p1.From.Index = i386.REG_AX // double-width shift
+ p1.From.Index = x86.REG_AX // double-width shift
p1.From.Scale = 0
- gins(i386.ASHLL, &cx, &ax)
+ gins(x86.ASHLL, &cx, &ax)
gc.Patch(p2, gc.Pc)
case gc.ORSH:
@@ -287,12 +287,12 @@
split64(res, &lo2, &hi2)
if hi1.Type.Etype == gc.TINT32 {
gmove(&hi1, &lo2)
- gins(i386.ASARL, ncon(31), &lo2)
+ gins(x86.ASARL, ncon(31), &lo2)
gmove(&hi1, &hi2)
- gins(i386.ASARL, ncon(31), &hi2)
+ gins(x86.ASARL, ncon(31), &hi2)
} else {
- gins(i386.AMOVL, ncon(0), &lo2)
- gins(i386.AMOVL, ncon(0), &hi2)
+ gins(x86.AMOVL, ncon(0), &lo2)
+ gins(x86.AMOVL, ncon(0), &hi2)
}
splitclean()
@@ -310,9 +310,9 @@
}
if hi1.Type.Etype == gc.TINT32 {
gmove(&hi1, &hi2)
- gins(i386.ASARL, ncon(31), &hi2)
+ gins(x86.ASARL, ncon(31), &hi2)
} else {
- gins(i386.AMOVL, ncon(0), &hi2)
+ gins(x86.AMOVL, ncon(0), &hi2)
}
splitclean()
splitclean()
@@ -320,71 +320,71 @@
}
// general shift
- gins(i386.AMOVL, &lo1, &ax)
+ gins(x86.AMOVL, &lo1, &ax)
- gins(i386.AMOVL, &hi1, &dx)
- p1 := gins(i386.ASHRL, ncon(uint32(v)), &ax)
- p1.From.Index = i386.REG_DX // double-width shift
+ gins(x86.AMOVL, &hi1, &dx)
+ p1 := gins(x86.ASHRL, ncon(uint32(v)), &ax)
+ p1.From.Index = x86.REG_DX // double-width shift
p1.From.Scale = 0
gins(optoas(gc.ORSH, hi1.Type), ncon(uint32(v)), &dx)
break
}
// load value into DX:AX.
- gins(i386.AMOVL, &lo1, &ax)
+ gins(x86.AMOVL, &lo1, &ax)
- gins(i386.AMOVL, &hi1, &dx)
+ gins(x86.AMOVL, &hi1, &dx)
// load shift value into register.
// if high bits are set, zero value.
var p1 *obj.Prog
if gc.Is64(r.Type) {
- gins(i386.ACMPL, &hi2, ncon(0))
- p1 = gc.Gbranch(i386.AJNE, nil, +1)
- gins(i386.AMOVL, &lo2, &cx)
+ gins(x86.ACMPL, &hi2, ncon(0))
+ p1 = gc.Gbranch(x86.AJNE, nil, +1)
+ gins(x86.AMOVL, &lo2, &cx)
} else {
cx.Type = gc.Types[gc.TUINT32]
gmove(r, &cx)
}
// if shift count is >=64, zero or sign-extend value
- gins(i386.ACMPL, &cx, ncon(64))
+ gins(x86.ACMPL, &cx, ncon(64))
p2 := gc.Gbranch(optoas(gc.OLT, gc.Types[gc.TUINT32]), nil, +1)
if p1 != nil {
gc.Patch(p1, gc.Pc)
}
if hi1.Type.Etype == gc.TINT32 {
- gins(i386.ASARL, ncon(31), &dx)
- gins(i386.AMOVL, &dx, &ax)
+ gins(x86.ASARL, ncon(31), &dx)
+ gins(x86.AMOVL, &dx, &ax)
} else {
- gins(i386.AXORL, &dx, &dx)
- gins(i386.AXORL, &ax, &ax)
+ gins(x86.AXORL, &dx, &dx)
+ gins(x86.AXORL, &ax, &ax)
}
gc.Patch(p2, gc.Pc)
// if shift count is >= 32, sign-extend hi.
- gins(i386.ACMPL, &cx, ncon(32))
+ gins(x86.ACMPL, &cx, ncon(32))
p1 = gc.Gbranch(optoas(gc.OLT, gc.Types[gc.TUINT32]), nil, +1)
- gins(i386.AMOVL, &dx, &ax)
+ gins(x86.AMOVL, &dx, &ax)
if hi1.Type.Etype == gc.TINT32 {
- gins(i386.ASARL, &cx, &ax) // SARL only uses bottom 5 bits of count
- gins(i386.ASARL, ncon(31), &dx)
+ gins(x86.ASARL, &cx, &ax) // SARL only uses bottom 5 bits of count
+ gins(x86.ASARL, ncon(31), &dx)
} else {
- gins(i386.ASHRL, &cx, &ax)
- gins(i386.AXORL, &dx, &dx)
+ gins(x86.ASHRL, &cx, &ax)
+ gins(x86.AXORL, &dx, &dx)
}
p2 = gc.Gbranch(obj.AJMP, nil, 0)
gc.Patch(p1, gc.Pc)
// general shift
- p1 = gins(i386.ASHRL, &cx, &ax)
+ p1 = gins(x86.ASHRL, &cx, &ax)
- p1.From.Index = i386.REG_DX // double-width shift
+ p1.From.Index = x86.REG_DX // double-width shift
p1.From.Scale = 0
gins(optoas(gc.ORSH, hi1.Type), &cx, &dx)
gc.Patch(p2, gc.Pc)
@@ -414,10 +414,10 @@
break
case 0xffffffff:
- gins(i386.ANOTL, nil, &lo2)
+ gins(x86.ANOTL, nil, &lo2)
default:
- gins(i386.AXORL, ncon(lv), &lo2)
+ gins(x86.AXORL, ncon(lv), &lo2)
}
switch hv {
@@ -425,32 +425,32 @@
break
case 0xffffffff:
- gins(i386.ANOTL, nil, &hi2)
+ gins(x86.ANOTL, nil, &hi2)
default:
- gins(i386.AXORL, ncon(hv), &hi2)
+ gins(x86.AXORL, ncon(hv), &hi2)
}
case gc.OAND:
switch lv {
case 0:
- gins(i386.AMOVL, ncon(0), &lo2)
+ gins(x86.AMOVL, ncon(0), &lo2)
default:
gmove(&lo1, &lo2)
if lv != 0xffffffff {
- gins(i386.AANDL, ncon(lv), &lo2)
+ gins(x86.AANDL, ncon(lv), &lo2)
}
}
switch hv {
case 0:
- gins(i386.AMOVL, ncon(0), &hi2)
+ gins(x86.AMOVL, ncon(0), &hi2)
default:
gmove(&hi1, &hi2)
if hv != 0xffffffff {
- gins(i386.AANDL, ncon(hv), &hi2)
+ gins(x86.AANDL, ncon(hv), &hi2)
}
}
@@ -460,11 +460,11 @@
gmove(&lo1, &lo2)
case 0xffffffff:
- gins(i386.AMOVL, ncon(0xffffffff), &lo2)
+ gins(x86.AMOVL, ncon(0xffffffff), &lo2)
default:
gmove(&lo1, &lo2)
- gins(i386.AORL, ncon(lv), &lo2)
+ gins(x86.AORL, ncon(lv), &lo2)
}
switch hv {
@@ -472,11 +472,11 @@
gmove(&hi1, &hi2)
case 0xffffffff:
- gins(i386.AMOVL, ncon(0xffffffff), &hi2)
+ gins(x86.AMOVL, ncon(0xffffffff), &hi2)
default:
gmove(&hi1, &hi2)
- gins(i386.AORL, ncon(hv), &hi2)
+ gins(x86.AORL, ncon(hv), &hi2)
}
}
@@ -485,8 +485,8 @@
return
}
- gins(i386.AMOVL, &lo1, &ax)
- gins(i386.AMOVL, &hi1, &dx)
+ gins(x86.AMOVL, &lo1, &ax)
+ gins(x86.AMOVL, &hi1, &dx)
gins(optoas(int(n.Op), lo1.Type), &lo2, &ax)
gins(optoas(int(n.Op), lo1.Type), &hi2, &dx)
}
@@ -497,8 +497,8 @@
splitclean()
split64(res, &lo1, &hi1)
- gins(i386.AMOVL, &ax, &lo1)
- gins(i386.AMOVL, &dx, &hi1)
+ gins(x86.AMOVL, &ax, &lo1)
+ gins(x86.AMOVL, &dx, &hi1)
splitclean()
}
@@ -521,11 +521,11 @@
t := hi1.Type
if nl.Op == gc.OLITERAL || nr.Op == gc.OLITERAL {
- gins(i386.ACMPL, &hi1, &hi2)
+ gins(x86.ACMPL, &hi1, &hi2)
} else {
regalloc(&rr, gc.Types[gc.TINT32], nil)
- gins(i386.AMOVL, &hi1, &rr)
- gins(i386.ACMPL, &rr, &hi2)
+ gins(x86.AMOVL, &hi1, &rr)
+ gins(x86.ACMPL, &rr, &hi2)
regfree(&rr)
}
@@ -540,14 +540,14 @@
// jeq to
// L:
case gc.OEQ:
- br = gc.Gbranch(i386.AJNE, nil, -likely)
+ br = gc.Gbranch(x86.AJNE, nil, -likely)
// cmp hi
// jne to
// cmp lo
// jne to
case gc.ONE:
- gc.Patch(gc.Gbranch(i386.AJNE, nil, likely), to)
+ gc.Patch(gc.Gbranch(x86.AJNE, nil, likely), to)
// cmp hi
// jgt to
@@ -578,11 +578,11 @@
t = lo1.Type
if nl.Op == gc.OLITERAL || nr.Op == gc.OLITERAL {
- gins(i386.ACMPL, &lo1, &lo2)
+ gins(x86.ACMPL, &lo1, &lo2)
} else {
regalloc(&rr, gc.Types[gc.TINT32], nil)
- gins(i386.AMOVL, &lo1, &rr)
- gins(i386.ACMPL, &rr, &lo2)
+ gins(x86.AMOVL, &lo1, &rr)
+ gins(x86.ACMPL, &rr, &lo2)
regfree(&rr)
}
diff --git a/src/cmd/8g/galign.go b/src/cmd/8g/galign.go
index 8cb9319..7c462f5 100644
--- a/src/cmd/8g/galign.go
+++ b/src/cmd/8g/galign.go
@@ -7,14 +7,14 @@
import (
"cmd/internal/gc"
"cmd/internal/obj"
- i386 "cmd/internal/obj/x86"
+ "cmd/internal/obj/x86"
)
var thechar int = '8'
var thestring string = "386"
-var thelinkarch *obj.LinkArch = &i386.Link386
+var thelinkarch *obj.LinkArch = &x86.Link386
func linkarchinit() {
}
@@ -43,8 +43,8 @@
gc.Thearch.Thestring = thestring
gc.Thearch.Thelinkarch = thelinkarch
gc.Thearch.Typedefs = typedefs
- gc.Thearch.REGSP = i386.REGSP
- gc.Thearch.REGCTXT = i386.REGCTXT
+ gc.Thearch.REGSP = x86.REGSP
+ gc.Thearch.REGCTXT = x86.REGCTXT
gc.Thearch.MAXWIDTH = MAXWIDTH
gc.Thearch.Anyregalloc = anyregalloc
gc.Thearch.Betypeinit = betypeinit
diff --git a/src/cmd/8g/gg.go b/src/cmd/8g/gg.go
index 161dcd0..bfbd12e 100644
--- a/src/cmd/8g/gg.go
+++ b/src/cmd/8g/gg.go
@@ -4,7 +4,7 @@
package main
-import i386 "cmd/internal/obj/x86"
+import "cmd/internal/obj/x86"
import "cmd/internal/gc"
// TODO(rsc):
@@ -21,7 +21,7 @@
Fpop2 = 1 << 2
)
-var reg [i386.MAXREG]uint8
+var reg [x86.MAXREG]uint8
var panicdiv *gc.Node
diff --git a/src/cmd/8g/ggen.go b/src/cmd/8g/ggen.go
index 617551c..c153c93 100644
--- a/src/cmd/8g/ggen.go
+++ b/src/cmd/8g/ggen.go
@@ -7,7 +7,7 @@
import (
"cmd/internal/gc"
"cmd/internal/obj"
- i386 "cmd/internal/obj/x86"
+ "cmd/internal/obj/x86"
)
func defframe(ptxt *obj.Prog) {
@@ -65,23 +65,23 @@
return p
}
if *ax == 0 {
- p = appendpp(p, i386.AMOVL, obj.TYPE_CONST, 0, 0, obj.TYPE_REG, i386.REG_AX, 0)
+ p = appendpp(p, x86.AMOVL, obj.TYPE_CONST, 0, 0, obj.TYPE_REG, x86.REG_AX, 0)
*ax = 1
}
if cnt <= int64(4*gc.Widthreg) {
for i := int64(0); i < cnt; i += int64(gc.Widthreg) {
- p = appendpp(p, i386.AMOVL, obj.TYPE_REG, i386.REG_AX, 0, obj.TYPE_MEM, i386.REG_SP, frame+lo+i)
+ p = appendpp(p, x86.AMOVL, obj.TYPE_REG, x86.REG_AX, 0, obj.TYPE_MEM, x86.REG_SP, frame+lo+i)
}
} else if !gc.Nacl && cnt <= int64(128*gc.Widthreg) {
- p = appendpp(p, i386.ALEAL, obj.TYPE_MEM, i386.REG_SP, frame+lo, obj.TYPE_REG, i386.REG_DI, 0)
+ p = appendpp(p, x86.ALEAL, obj.TYPE_MEM, x86.REG_SP, frame+lo, obj.TYPE_REG, x86.REG_DI, 0)
p = appendpp(p, obj.ADUFFZERO, obj.TYPE_NONE, 0, 0, obj.TYPE_ADDR, 0, 1*(128-cnt/int64(gc.Widthreg)))
p.To.Sym = gc.Linksym(gc.Pkglookup("duffzero", gc.Runtimepkg))
} else {
- p = appendpp(p, i386.AMOVL, obj.TYPE_CONST, 0, cnt/int64(gc.Widthreg), obj.TYPE_REG, i386.REG_CX, 0)
- p = appendpp(p, i386.ALEAL, obj.TYPE_MEM, i386.REG_SP, frame+lo, obj.TYPE_REG, i386.REG_DI, 0)
- p = appendpp(p, i386.AREP, obj.TYPE_NONE, 0, 0, obj.TYPE_NONE, 0, 0)
- p = appendpp(p, i386.ASTOSL, obj.TYPE_NONE, 0, 0, obj.TYPE_NONE, 0, 0)
+ p = appendpp(p, x86.AMOVL, obj.TYPE_CONST, 0, cnt/int64(gc.Widthreg), obj.TYPE_REG, x86.REG_CX, 0)
+ p = appendpp(p, x86.ALEAL, obj.TYPE_MEM, x86.REG_SP, frame+lo, obj.TYPE_REG, x86.REG_DI, 0)
+ p = appendpp(p, x86.AREP, obj.TYPE_NONE, 0, 0, obj.TYPE_NONE, 0, 0)
+ p = appendpp(p, x86.ASTOSL, obj.TYPE_NONE, 0, 0, obj.TYPE_NONE, 0, 0)
}
return p
@@ -140,7 +140,7 @@
break
}
n1.Type = z.Type
- gins(i386.AMOVL, &z, &n1)
+ gins(x86.AMOVL, &z, &n1)
n1.Xoffset += 4
}
@@ -152,7 +152,7 @@
break
}
n1.Type = z.Type
- gins(i386.AMOVB, &z, &n1)
+ gins(x86.AMOVB, &z, &n1)
n1.Xoffset++
}
@@ -161,14 +161,14 @@
}
var n1 gc.Node
- gc.Nodreg(&n1, gc.Types[gc.Tptr], i386.REG_DI)
+ gc.Nodreg(&n1, gc.Types[gc.Tptr], x86.REG_DI)
agen(nl, &n1)
- gconreg(i386.AMOVL, 0, i386.REG_AX)
+ gconreg(x86.AMOVL, 0, x86.REG_AX)
if q > 128 || (q >= 4 && gc.Nacl) {
- gconreg(i386.AMOVL, int64(q), i386.REG_CX)
- gins(i386.AREP, nil, nil) // repeat
- gins(i386.ASTOSL, nil, nil) // STOL AL,*(DI)+
+ gconreg(x86.AMOVL, int64(q), x86.REG_CX)
+ gins(x86.AREP, nil, nil) // repeat
+ gins(x86.ASTOSL, nil, nil) // STOL AL,*(DI)+
} else if q >= 4 {
p := gins(obj.ADUFFZERO, nil, nil)
p.To.Type = obj.TYPE_ADDR
@@ -178,13 +178,13 @@
p.To.Offset = 1 * (128 - int64(q))
} else {
for q > 0 {
- gins(i386.ASTOSL, nil, nil) // STOL AL,*(DI)+
+ gins(x86.ASTOSL, nil, nil) // STOL AL,*(DI)+
q--
}
}
for c > 0 {
- gins(i386.ASTOSB, nil, nil) // STOB AL,*(DI)+
+ gins(x86.ASTOSB, nil, nil) // STOB AL,*(DI)+
c--
}
}
@@ -225,9 +225,9 @@
// because the NOP pseudo-instruction will be removed by
// the linker.
var reg gc.Node
- gc.Nodreg(®, gc.Types[gc.TINT], i386.REG_AX)
+ gc.Nodreg(®, gc.Types[gc.TINT], x86.REG_AX)
- gins(i386.AXCHGL, ®, ®)
+ gins(x86.AXCHGL, ®, ®)
}
p := gins(obj.ACALL, nil, f)
@@ -239,9 +239,9 @@
}
var reg gc.Node
- gc.Nodreg(®, gc.Types[gc.Tptr], i386.REG_DX)
+ gc.Nodreg(®, gc.Types[gc.Tptr], x86.REG_DX)
var r1 gc.Node
- gc.Nodreg(&r1, gc.Types[gc.Tptr], i386.REG_BX)
+ gc.Nodreg(&r1, gc.Types[gc.Tptr], x86.REG_BX)
gmove(f, ®)
reg.Op = gc.OINDREG
gmove(®, &r1)
@@ -256,19 +256,19 @@
var stk gc.Node
stk.Op = gc.OINDREG
- stk.Val.U.Reg = i386.REG_SP
+ stk.Val.U.Reg = x86.REG_SP
stk.Xoffset = 0
// size of arguments at 0(SP)
var con gc.Node
gc.Nodconst(&con, gc.Types[gc.TINT32], int64(gc.Argsize(f.Type)))
- gins(i386.AMOVL, &con, &stk)
+ gins(x86.AMOVL, &con, &stk)
// FuncVal* at 4(SP)
stk.Xoffset = int64(gc.Widthptr)
- gins(i386.AMOVL, f, &stk)
+ gins(x86.AMOVL, f, &stk)
if proc == 1 {
ginscall(gc.Newproc, 0)
@@ -277,9 +277,9 @@
}
if proc == 2 {
var reg gc.Node
- gc.Nodreg(®, gc.Types[gc.TINT32], i386.REG_AX)
- gins(i386.ATESTL, ®, ®)
- p := gc.Gbranch(i386.AJEQ, nil, +1)
+ gc.Nodreg(®, gc.Types[gc.TINT32], x86.REG_AX)
+ gins(x86.ATESTL, ®, ®)
+ p := gc.Gbranch(x86.AJEQ, nil, +1)
cgen_ret(nil)
gc.Patch(p, gc.Pc)
}
@@ -318,7 +318,7 @@
igen(i, &nodi, res) // REG = &inter
var nodsp gc.Node
- gc.Nodindreg(&nodsp, gc.Types[gc.Tptr], i386.REG_SP)
+ gc.Nodindreg(&nodsp, gc.Types[gc.Tptr], x86.REG_SP)
nodsp.Xoffset = 0
if proc != 0 {
@@ -351,7 +351,7 @@
proc = 3
} else {
// go/defer. generate go func value.
- gins(i386.ALEAL, &nodo, &nodr) // REG = &(20+offset(REG)) -- i.tab->fun[f]
+ gins(x86.ALEAL, &nodo, &nodr) // REG = &(20+offset(REG)) -- i.tab->fun[f]
}
nodr.Type = n.Left.Type
@@ -431,7 +431,7 @@
var nod gc.Node
nod.Op = gc.OINDREG
- nod.Val.U.Reg = i386.REG_SP
+ nod.Val.U.Reg = x86.REG_SP
nod.Addable = 1
nod.Xoffset = fp.Width
@@ -458,7 +458,7 @@
var nod1 gc.Node
nod1.Op = gc.OINDREG
- nod1.Val.U.Reg = i386.REG_SP
+ nod1.Val.U.Reg = x86.REG_SP
nod1.Addable = 1
nod1.Xoffset = fp.Width
@@ -467,11 +467,11 @@
if res.Op != gc.OREGISTER {
var nod2 gc.Node
regalloc(&nod2, gc.Types[gc.Tptr], res)
- gins(i386.ALEAL, &nod1, &nod2)
- gins(i386.AMOVL, &nod2, res)
+ gins(x86.ALEAL, &nod1, &nod2)
+ gins(x86.AMOVL, &nod2, res)
regfree(&nod2)
} else {
- gins(i386.ALEAL, &nod1, res)
+ gins(x86.ALEAL, &nod1, res)
}
}
@@ -665,10 +665,10 @@
}
var ax gc.Node
var oldax gc.Node
- savex(i386.REG_AX, &ax, &oldax, res, t)
+ savex(x86.REG_AX, &ax, &oldax, res, t)
var olddx gc.Node
var dx gc.Node
- savex(i386.REG_DX, &dx, &olddx, res, t)
+ savex(x86.REG_DX, &dx, &olddx, res, t)
dodiv(op, nl, nr, res, &ax, &dx)
restx(&dx, &olddx)
restx(&ax, &oldax)
@@ -711,8 +711,8 @@
var oldcx gc.Node
var cx gc.Node
- gc.Nodreg(&cx, gc.Types[gc.TUINT32], i386.REG_CX)
- if reg[i386.REG_CX] > 1 && !gc.Samereg(&cx, res) {
+ gc.Nodreg(&cx, gc.Types[gc.TUINT32], x86.REG_CX)
+ if reg[x86.REG_CX] > 1 && !gc.Samereg(&cx, res) {
gc.Tempname(&oldcx, gc.Types[gc.TUINT32])
gmove(&cx, &oldcx)
}
@@ -723,7 +723,7 @@
gc.Tempname(&nt, nr.Type)
n1 = nt
} else {
- gc.Nodreg(&n1, gc.Types[gc.TUINT32], i386.REG_CX)
+ gc.Nodreg(&n1, gc.Types[gc.TUINT32], x86.REG_CX)
regalloc(&n1, nr.Type, &n1) // to hold the shift type in CX
}
@@ -745,7 +745,7 @@
if bounded {
if nr.Type.Width > 4 {
// delayed reg alloc
- gc.Nodreg(&n1, gc.Types[gc.TUINT32], i386.REG_CX)
+ gc.Nodreg(&n1, gc.Types[gc.TUINT32], x86.REG_CX)
regalloc(&n1, gc.Types[gc.TUINT32], &n1) // to hold the shift type in CX
var lo gc.Node
@@ -758,7 +758,7 @@
var p1 *obj.Prog
if nr.Type.Width > 4 {
// delayed reg alloc
- gc.Nodreg(&n1, gc.Types[gc.TUINT32], i386.REG_CX)
+ gc.Nodreg(&n1, gc.Types[gc.TUINT32], x86.REG_CX)
regalloc(&n1, gc.Types[gc.TUINT32], &n1) // to hold the shift type in CX
var lo gc.Node
@@ -858,7 +858,7 @@
cgen(nr, &n2)
// multiply.
- gc.Nodreg(&ax, t, i386.REG_AX)
+ gc.Nodreg(&ax, t, x86.REG_AX)
gmove(&n2, &ax)
gins(a, &n1, nil)
@@ -866,13 +866,13 @@
if t.Width == 1 {
// byte multiply behaves differently.
- gc.Nodreg(&ax, t, i386.REG_AH)
+ gc.Nodreg(&ax, t, x86.REG_AH)
- gc.Nodreg(&dx, t, i386.REG_DX)
+ gc.Nodreg(&dx, t, x86.REG_DX)
gmove(&ax, &dx)
}
- gc.Nodreg(&dx, t, i386.REG_DX)
+ gc.Nodreg(&dx, t, x86.REG_DX)
gmove(&dx, res)
}
@@ -931,8 +931,8 @@
nl := n.Left
nr := n.Right
- gc.Nodreg(&f0, nl.Type, i386.REG_F0)
- gc.Nodreg(&f1, n.Type, i386.REG_F0+1)
+ gc.Nodreg(&f0, nl.Type, x86.REG_F0)
+ gc.Nodreg(&f1, n.Type, x86.REG_F0+1)
if nr != nil {
// binary
if nl.Ullman >= nr.Ullman {
@@ -1118,22 +1118,22 @@
a = gc.Brrev(a)
}
- gc.Nodreg(&tmp, nr.Type, i386.REG_F0)
- gc.Nodreg(&n2, nr.Type, i386.REG_F0+1)
- gc.Nodreg(&ax, gc.Types[gc.TUINT16], i386.REG_AX)
+ gc.Nodreg(&tmp, nr.Type, x86.REG_F0)
+ gc.Nodreg(&n2, nr.Type, x86.REG_F0+1)
+ gc.Nodreg(&ax, gc.Types[gc.TUINT16], x86.REG_AX)
et = gc.Simsimtype(nr.Type)
if et == gc.TFLOAT64 {
if nl.Ullman > nr.Ullman {
cgen(nl, &tmp)
cgen(nr, &tmp)
- gins(i386.AFXCHD, &tmp, &n2)
+ gins(x86.AFXCHD, &tmp, &n2)
} else {
cgen(nr, &tmp)
cgen(nl, &tmp)
}
- gins(i386.AFUCOMIP, &tmp, &n2)
- gins(i386.AFMOVDP, &tmp, &tmp) // annoying pop but still better than STSW+SAHF
+ gins(x86.AFUCOMIP, &tmp, &n2)
+ gins(x86.AFMOVDP, &tmp, &tmp) // annoying pop but still better than STSW+SAHF
} else {
// TODO(rsc): The moves back and forth to memory
// here are for truncating the value to 32 bits.
@@ -1149,9 +1149,9 @@
cgen(nr, &t1)
cgen(nl, &t2)
gmove(&t2, &tmp)
- gins(i386.AFCOMFP, &t1, &tmp)
- gins(i386.AFSTSW, nil, &ax)
- gins(i386.ASAHF, nil, nil)
+ gins(x86.AFCOMFP, &t1, &tmp)
+ gins(x86.AFSTSW, nil, &ax)
+ gins(x86.ASAHF, nil, nil)
}
goto ret
@@ -1159,17 +1159,17 @@
ret:
if a == gc.OEQ {
// neither NE nor P
- p1 := gc.Gbranch(i386.AJNE, nil, -likely)
+ p1 := gc.Gbranch(x86.AJNE, nil, -likely)
- p2 := gc.Gbranch(i386.AJPS, nil, -likely)
+ p2 := gc.Gbranch(x86.AJPS, nil, -likely)
gc.Patch(gc.Gbranch(obj.AJMP, nil, 0), to)
gc.Patch(p1, gc.Pc)
gc.Patch(p2, gc.Pc)
} else if a == gc.ONE {
// either NE or P
- gc.Patch(gc.Gbranch(i386.AJNE, nil, likely), to)
+ gc.Patch(gc.Gbranch(x86.AJNE, nil, likely), to)
- gc.Patch(gc.Gbranch(i386.AJPS, nil, likely), to)
+ gc.Patch(gc.Gbranch(x86.AJPS, nil, likely), to)
} else {
gc.Patch(gc.Gbranch(optoas(a, nr.Type), nil, likely), to)
}
@@ -1205,10 +1205,10 @@
p2.Lineno = p.Lineno
p1.Pc = 9999
p2.Pc = 9999
- p.As = i386.ACMPL
+ p.As = x86.ACMPL
p.To.Type = obj.TYPE_CONST
p.To.Offset = 0
- p1.As = i386.AJNE
+ p1.As = x86.AJNE
p1.From.Type = obj.TYPE_CONST
p1.From.Offset = 1 // likely
p1.To.Type = obj.TYPE_BRANCH
@@ -1217,10 +1217,10 @@
// crash by write to memory address 0.
// if possible, since we know arg is 0, use 0(arg),
// which will be shorter to encode than plain 0.
- p2.As = i386.AMOVL
+ p2.As = x86.AMOVL
p2.From.Type = obj.TYPE_REG
- p2.From.Reg = i386.REG_AX
+ p2.From.Reg = x86.REG_AX
if regtyp(&p.From) {
p2.To.Type = obj.TYPE_MEM
p2.To.Reg = p.From.Reg
diff --git a/src/cmd/8g/gsubr.go b/src/cmd/8g/gsubr.go
index 91dec41..0979cb5 100644
--- a/src/cmd/8g/gsubr.go
+++ b/src/cmd/8g/gsubr.go
@@ -33,7 +33,7 @@
import (
"cmd/internal/gc"
"cmd/internal/obj"
- i386 "cmd/internal/obj/x86"
+ "cmd/internal/obj/x86"
"fmt"
)
@@ -56,7 +56,7 @@
gc.Fatal("optoas: no entry %v-%v", gc.Oconv(int(op), 0), gc.Tconv(t, 0))
case gc.OADDR<<16 | gc.TPTR32:
- a = i386.ALEAL
+ a = x86.ALEAL
case gc.OEQ<<16 | gc.TBOOL,
gc.OEQ<<16 | gc.TINT8,
@@ -71,7 +71,7 @@
gc.OEQ<<16 | gc.TPTR64,
gc.OEQ<<16 | gc.TFLOAT32,
gc.OEQ<<16 | gc.TFLOAT64:
- a = i386.AJEQ
+ a = x86.AJEQ
case gc.ONE<<16 | gc.TBOOL,
gc.ONE<<16 | gc.TINT8,
@@ -86,37 +86,37 @@
gc.ONE<<16 | gc.TPTR64,
gc.ONE<<16 | gc.TFLOAT32,
gc.ONE<<16 | gc.TFLOAT64:
- a = i386.AJNE
+ a = x86.AJNE
case gc.OLT<<16 | gc.TINT8,
gc.OLT<<16 | gc.TINT16,
gc.OLT<<16 | gc.TINT32,
gc.OLT<<16 | gc.TINT64:
- a = i386.AJLT
+ a = x86.AJLT
case gc.OLT<<16 | gc.TUINT8,
gc.OLT<<16 | gc.TUINT16,
gc.OLT<<16 | gc.TUINT32,
gc.OLT<<16 | gc.TUINT64:
- a = i386.AJCS
+ a = x86.AJCS
case gc.OLE<<16 | gc.TINT8,
gc.OLE<<16 | gc.TINT16,
gc.OLE<<16 | gc.TINT32,
gc.OLE<<16 | gc.TINT64:
- a = i386.AJLE
+ a = x86.AJLE
case gc.OLE<<16 | gc.TUINT8,
gc.OLE<<16 | gc.TUINT16,
gc.OLE<<16 | gc.TUINT32,
gc.OLE<<16 | gc.TUINT64:
- a = i386.AJLS
+ a = x86.AJLS
case gc.OGT<<16 | gc.TINT8,
gc.OGT<<16 | gc.TINT16,
gc.OGT<<16 | gc.TINT32,
gc.OGT<<16 | gc.TINT64:
- a = i386.AJGT
+ a = x86.AJGT
case gc.OGT<<16 | gc.TUINT8,
gc.OGT<<16 | gc.TUINT16,
@@ -124,13 +124,13 @@
gc.OGT<<16 | gc.TUINT64,
gc.OLT<<16 | gc.TFLOAT32,
gc.OLT<<16 | gc.TFLOAT64:
- a = i386.AJHI
+ a = x86.AJHI
case gc.OGE<<16 | gc.TINT8,
gc.OGE<<16 | gc.TINT16,
gc.OGE<<16 | gc.TINT32,
gc.OGE<<16 | gc.TINT64:
- a = i386.AJGE
+ a = x86.AJGE
case gc.OGE<<16 | gc.TUINT8,
gc.OGE<<16 | gc.TUINT16,
@@ -138,261 +138,261 @@
gc.OGE<<16 | gc.TUINT64,
gc.OLE<<16 | gc.TFLOAT32,
gc.OLE<<16 | gc.TFLOAT64:
- a = i386.AJCC
+ a = x86.AJCC
case gc.OCMP<<16 | gc.TBOOL,
gc.OCMP<<16 | gc.TINT8,
gc.OCMP<<16 | gc.TUINT8:
- a = i386.ACMPB
+ a = x86.ACMPB
case gc.OCMP<<16 | gc.TINT16,
gc.OCMP<<16 | gc.TUINT16:
- a = i386.ACMPW
+ a = x86.ACMPW
case gc.OCMP<<16 | gc.TINT32,
gc.OCMP<<16 | gc.TUINT32,
gc.OCMP<<16 | gc.TPTR32:
- a = i386.ACMPL
+ a = x86.ACMPL
case gc.OAS<<16 | gc.TBOOL,
gc.OAS<<16 | gc.TINT8,
gc.OAS<<16 | gc.TUINT8:
- a = i386.AMOVB
+ a = x86.AMOVB
case gc.OAS<<16 | gc.TINT16,
gc.OAS<<16 | gc.TUINT16:
- a = i386.AMOVW
+ a = x86.AMOVW
case gc.OAS<<16 | gc.TINT32,
gc.OAS<<16 | gc.TUINT32,
gc.OAS<<16 | gc.TPTR32:
- a = i386.AMOVL
+ a = x86.AMOVL
case gc.OAS<<16 | gc.TFLOAT32:
- a = i386.AMOVSS
+ a = x86.AMOVSS
case gc.OAS<<16 | gc.TFLOAT64:
- a = i386.AMOVSD
+ a = x86.AMOVSD
case gc.OADD<<16 | gc.TINT8,
gc.OADD<<16 | gc.TUINT8:
- a = i386.AADDB
+ a = x86.AADDB
case gc.OADD<<16 | gc.TINT16,
gc.OADD<<16 | gc.TUINT16:
- a = i386.AADDW
+ a = x86.AADDW
case gc.OADD<<16 | gc.TINT32,
gc.OADD<<16 | gc.TUINT32,
gc.OADD<<16 | gc.TPTR32:
- a = i386.AADDL
+ a = x86.AADDL
case gc.OSUB<<16 | gc.TINT8,
gc.OSUB<<16 | gc.TUINT8:
- a = i386.ASUBB
+ a = x86.ASUBB
case gc.OSUB<<16 | gc.TINT16,
gc.OSUB<<16 | gc.TUINT16:
- a = i386.ASUBW
+ a = x86.ASUBW
case gc.OSUB<<16 | gc.TINT32,
gc.OSUB<<16 | gc.TUINT32,
gc.OSUB<<16 | gc.TPTR32:
- a = i386.ASUBL
+ a = x86.ASUBL
case gc.OINC<<16 | gc.TINT8,
gc.OINC<<16 | gc.TUINT8:
- a = i386.AINCB
+ a = x86.AINCB
case gc.OINC<<16 | gc.TINT16,
gc.OINC<<16 | gc.TUINT16:
- a = i386.AINCW
+ a = x86.AINCW
case gc.OINC<<16 | gc.TINT32,
gc.OINC<<16 | gc.TUINT32,
gc.OINC<<16 | gc.TPTR32:
- a = i386.AINCL
+ a = x86.AINCL
case gc.ODEC<<16 | gc.TINT8,
gc.ODEC<<16 | gc.TUINT8:
- a = i386.ADECB
+ a = x86.ADECB
case gc.ODEC<<16 | gc.TINT16,
gc.ODEC<<16 | gc.TUINT16:
- a = i386.ADECW
+ a = x86.ADECW
case gc.ODEC<<16 | gc.TINT32,
gc.ODEC<<16 | gc.TUINT32,
gc.ODEC<<16 | gc.TPTR32:
- a = i386.ADECL
+ a = x86.ADECL
case gc.OCOM<<16 | gc.TINT8,
gc.OCOM<<16 | gc.TUINT8:
- a = i386.ANOTB
+ a = x86.ANOTB
case gc.OCOM<<16 | gc.TINT16,
gc.OCOM<<16 | gc.TUINT16:
- a = i386.ANOTW
+ a = x86.ANOTW
case gc.OCOM<<16 | gc.TINT32,
gc.OCOM<<16 | gc.TUINT32,
gc.OCOM<<16 | gc.TPTR32:
- a = i386.ANOTL
+ a = x86.ANOTL
case gc.OMINUS<<16 | gc.TINT8,
gc.OMINUS<<16 | gc.TUINT8:
- a = i386.ANEGB
+ a = x86.ANEGB
case gc.OMINUS<<16 | gc.TINT16,
gc.OMINUS<<16 | gc.TUINT16:
- a = i386.ANEGW
+ a = x86.ANEGW
case gc.OMINUS<<16 | gc.TINT32,
gc.OMINUS<<16 | gc.TUINT32,
gc.OMINUS<<16 | gc.TPTR32:
- a = i386.ANEGL
+ a = x86.ANEGL
case gc.OAND<<16 | gc.TINT8,
gc.OAND<<16 | gc.TUINT8:
- a = i386.AANDB
+ a = x86.AANDB
case gc.OAND<<16 | gc.TINT16,
gc.OAND<<16 | gc.TUINT16:
- a = i386.AANDW
+ a = x86.AANDW
case gc.OAND<<16 | gc.TINT32,
gc.OAND<<16 | gc.TUINT32,
gc.OAND<<16 | gc.TPTR32:
- a = i386.AANDL
+ a = x86.AANDL
case gc.OOR<<16 | gc.TINT8,
gc.OOR<<16 | gc.TUINT8:
- a = i386.AORB
+ a = x86.AORB
case gc.OOR<<16 | gc.TINT16,
gc.OOR<<16 | gc.TUINT16:
- a = i386.AORW
+ a = x86.AORW
case gc.OOR<<16 | gc.TINT32,
gc.OOR<<16 | gc.TUINT32,
gc.OOR<<16 | gc.TPTR32:
- a = i386.AORL
+ a = x86.AORL
case gc.OXOR<<16 | gc.TINT8,
gc.OXOR<<16 | gc.TUINT8:
- a = i386.AXORB
+ a = x86.AXORB
case gc.OXOR<<16 | gc.TINT16,
gc.OXOR<<16 | gc.TUINT16:
- a = i386.AXORW
+ a = x86.AXORW
case gc.OXOR<<16 | gc.TINT32,
gc.OXOR<<16 | gc.TUINT32,
gc.OXOR<<16 | gc.TPTR32:
- a = i386.AXORL
+ a = x86.AXORL
case gc.OLROT<<16 | gc.TINT8,
gc.OLROT<<16 | gc.TUINT8:
- a = i386.AROLB
+ a = x86.AROLB
case gc.OLROT<<16 | gc.TINT16,
gc.OLROT<<16 | gc.TUINT16:
- a = i386.AROLW
+ a = x86.AROLW
case gc.OLROT<<16 | gc.TINT32,
gc.OLROT<<16 | gc.TUINT32,
gc.OLROT<<16 | gc.TPTR32:
- a = i386.AROLL
+ a = x86.AROLL
case gc.OLSH<<16 | gc.TINT8,
gc.OLSH<<16 | gc.TUINT8:
- a = i386.ASHLB
+ a = x86.ASHLB
case gc.OLSH<<16 | gc.TINT16,
gc.OLSH<<16 | gc.TUINT16:
- a = i386.ASHLW
+ a = x86.ASHLW
case gc.OLSH<<16 | gc.TINT32,
gc.OLSH<<16 | gc.TUINT32,
gc.OLSH<<16 | gc.TPTR32:
- a = i386.ASHLL
+ a = x86.ASHLL
case gc.ORSH<<16 | gc.TUINT8:
- a = i386.ASHRB
+ a = x86.ASHRB
case gc.ORSH<<16 | gc.TUINT16:
- a = i386.ASHRW
+ a = x86.ASHRW
case gc.ORSH<<16 | gc.TUINT32,
gc.ORSH<<16 | gc.TPTR32:
- a = i386.ASHRL
+ a = x86.ASHRL
case gc.ORSH<<16 | gc.TINT8:
- a = i386.ASARB
+ a = x86.ASARB
case gc.ORSH<<16 | gc.TINT16:
- a = i386.ASARW
+ a = x86.ASARW
case gc.ORSH<<16 | gc.TINT32:
- a = i386.ASARL
+ a = x86.ASARL
case gc.OHMUL<<16 | gc.TINT8,
gc.OMUL<<16 | gc.TINT8,
gc.OMUL<<16 | gc.TUINT8:
- a = i386.AIMULB
+ a = x86.AIMULB
case gc.OHMUL<<16 | gc.TINT16,
gc.OMUL<<16 | gc.TINT16,
gc.OMUL<<16 | gc.TUINT16:
- a = i386.AIMULW
+ a = x86.AIMULW
case gc.OHMUL<<16 | gc.TINT32,
gc.OMUL<<16 | gc.TINT32,
gc.OMUL<<16 | gc.TUINT32,
gc.OMUL<<16 | gc.TPTR32:
- a = i386.AIMULL
+ a = x86.AIMULL
case gc.OHMUL<<16 | gc.TUINT8:
- a = i386.AMULB
+ a = x86.AMULB
case gc.OHMUL<<16 | gc.TUINT16:
- a = i386.AMULW
+ a = x86.AMULW
case gc.OHMUL<<16 | gc.TUINT32,
gc.OHMUL<<16 | gc.TPTR32:
- a = i386.AMULL
+ a = x86.AMULL
case gc.ODIV<<16 | gc.TINT8,
gc.OMOD<<16 | gc.TINT8:
- a = i386.AIDIVB
+ a = x86.AIDIVB
case gc.ODIV<<16 | gc.TUINT8,
gc.OMOD<<16 | gc.TUINT8:
- a = i386.ADIVB
+ a = x86.ADIVB
case gc.ODIV<<16 | gc.TINT16,
gc.OMOD<<16 | gc.TINT16:
- a = i386.AIDIVW
+ a = x86.AIDIVW
case gc.ODIV<<16 | gc.TUINT16,
gc.OMOD<<16 | gc.TUINT16:
- a = i386.ADIVW
+ a = x86.ADIVW
case gc.ODIV<<16 | gc.TINT32,
gc.OMOD<<16 | gc.TINT32:
- a = i386.AIDIVL
+ a = x86.AIDIVL
case gc.ODIV<<16 | gc.TUINT32,
gc.ODIV<<16 | gc.TPTR32,
gc.OMOD<<16 | gc.TUINT32,
gc.OMOD<<16 | gc.TPTR32:
- a = i386.ADIVL
+ a = x86.ADIVL
case gc.OEXTEND<<16 | gc.TINT16:
- a = i386.ACWD
+ a = x86.ACWD
case gc.OEXTEND<<16 | gc.TINT32:
- a = i386.ACDQ
+ a = x86.ACDQ
}
return a
@@ -408,40 +408,40 @@
gc.Fatal("foptoas-sse: no entry %v-%v", gc.Oconv(int(op), 0), gc.Tconv(t, 0))
case gc.OCMP<<16 | gc.TFLOAT32:
- a = i386.AUCOMISS
+ a = x86.AUCOMISS
case gc.OCMP<<16 | gc.TFLOAT64:
- a = i386.AUCOMISD
+ a = x86.AUCOMISD
case gc.OAS<<16 | gc.TFLOAT32:
- a = i386.AMOVSS
+ a = x86.AMOVSS
case gc.OAS<<16 | gc.TFLOAT64:
- a = i386.AMOVSD
+ a = x86.AMOVSD
case gc.OADD<<16 | gc.TFLOAT32:
- a = i386.AADDSS
+ a = x86.AADDSS
case gc.OADD<<16 | gc.TFLOAT64:
- a = i386.AADDSD
+ a = x86.AADDSD
case gc.OSUB<<16 | gc.TFLOAT32:
- a = i386.ASUBSS
+ a = x86.ASUBSS
case gc.OSUB<<16 | gc.TFLOAT64:
- a = i386.ASUBSD
+ a = x86.ASUBSD
case gc.OMUL<<16 | gc.TFLOAT32:
- a = i386.AMULSS
+ a = x86.AMULSS
case gc.OMUL<<16 | gc.TFLOAT64:
- a = i386.AMULSD
+ a = x86.AMULSD
case gc.ODIV<<16 | gc.TFLOAT32:
- a = i386.ADIVSS
+ a = x86.ADIVSS
case gc.ODIV<<16 | gc.TFLOAT64:
- a = i386.ADIVSD
+ a = x86.ADIVSD
}
return a
@@ -463,79 +463,79 @@
switch uint32(op)<<16 | (uint32(et)<<8 | uint32(flg)) {
case gc.OADD<<16 | (gc.TFLOAT32<<8 | 0):
- return i386.AFADDF
+ return x86.AFADDF
case gc.OADD<<16 | (gc.TFLOAT64<<8 | 0):
- return i386.AFADDD
+ return x86.AFADDD
case gc.OADD<<16 | (gc.TFLOAT64<<8 | Fpop):
- return i386.AFADDDP
+ return x86.AFADDDP
case gc.OSUB<<16 | (gc.TFLOAT32<<8 | 0):
- return i386.AFSUBF
+ return x86.AFSUBF
case gc.OSUB<<16 | (gc.TFLOAT32<<8 | Frev):
- return i386.AFSUBRF
+ return x86.AFSUBRF
case gc.OSUB<<16 | (gc.TFLOAT64<<8 | 0):
- return i386.AFSUBD
+ return x86.AFSUBD
case gc.OSUB<<16 | (gc.TFLOAT64<<8 | Frev):
- return i386.AFSUBRD
+ return x86.AFSUBRD
case gc.OSUB<<16 | (gc.TFLOAT64<<8 | Fpop):
- return i386.AFSUBDP
+ return x86.AFSUBDP
case gc.OSUB<<16 | (gc.TFLOAT64<<8 | (Fpop | Frev)):
- return i386.AFSUBRDP
+ return x86.AFSUBRDP
case gc.OMUL<<16 | (gc.TFLOAT32<<8 | 0):
- return i386.AFMULF
+ return x86.AFMULF
case gc.OMUL<<16 | (gc.TFLOAT64<<8 | 0):
- return i386.AFMULD
+ return x86.AFMULD
case gc.OMUL<<16 | (gc.TFLOAT64<<8 | Fpop):
- return i386.AFMULDP
+ return x86.AFMULDP
case gc.ODIV<<16 | (gc.TFLOAT32<<8 | 0):
- return i386.AFDIVF
+ return x86.AFDIVF
case gc.ODIV<<16 | (gc.TFLOAT32<<8 | Frev):
- return i386.AFDIVRF
+ return x86.AFDIVRF
case gc.ODIV<<16 | (gc.TFLOAT64<<8 | 0):
- return i386.AFDIVD
+ return x86.AFDIVD
case gc.ODIV<<16 | (gc.TFLOAT64<<8 | Frev):
- return i386.AFDIVRD
+ return x86.AFDIVRD
case gc.ODIV<<16 | (gc.TFLOAT64<<8 | Fpop):
- return i386.AFDIVDP
+ return x86.AFDIVDP
case gc.ODIV<<16 | (gc.TFLOAT64<<8 | (Fpop | Frev)):
- return i386.AFDIVRDP
+ return x86.AFDIVRDP
case gc.OCMP<<16 | (gc.TFLOAT32<<8 | 0):
- return i386.AFCOMF
+ return x86.AFCOMF
case gc.OCMP<<16 | (gc.TFLOAT32<<8 | Fpop):
- return i386.AFCOMFP
+ return x86.AFCOMFP
case gc.OCMP<<16 | (gc.TFLOAT64<<8 | 0):
- return i386.AFCOMD
+ return x86.AFCOMD
case gc.OCMP<<16 | (gc.TFLOAT64<<8 | Fpop):
- return i386.AFCOMDP
+ return x86.AFCOMDP
case gc.OCMP<<16 | (gc.TFLOAT64<<8 | Fpop2):
- return i386.AFCOMDPP
+ return x86.AFCOMDPP
case gc.OMINUS<<16 | (gc.TFLOAT32<<8 | 0):
- return i386.AFCHS
+ return x86.AFCHS
case gc.OMINUS<<16 | (gc.TFLOAT64<<8 | 0):
- return i386.AFCHS
+ return x86.AFCHS
}
gc.Fatal("foptoas %v %v %#x", gc.Oconv(int(op), 0), gc.Tconv(t, 0), flg)
@@ -546,23 +546,23 @@
// REG_DI, // for movstring
// REG_SI, // for movstring
- i386.REG_AX, // for divide
- i386.REG_CX, // for shift
- i386.REG_DX, // for divide
- i386.REG_SP, // for stack
+ x86.REG_AX, // for divide
+ x86.REG_CX, // for shift
+ x86.REG_DX, // for divide
+ x86.REG_SP, // for stack
- i386.REG_BL, // because REG_BX can be allocated
- i386.REG_BH,
+ x86.REG_BL, // because REG_BX can be allocated
+ x86.REG_BH,
}
func ginit() {
for i := 0; i < len(reg); i++ {
reg[i] = 1
}
- for i := i386.REG_AX; i <= i386.REG_DI; i++ {
+ for i := x86.REG_AX; i <= x86.REG_DI; i++ {
reg[i] = 0
}
- for i := i386.REG_X0; i <= i386.REG_X7; i++ {
+ for i := x86.REG_X0; i <= x86.REG_X7; i++ {
reg[i] = 0
}
for i := 0; i < len(resvd); i++ {
@@ -570,19 +570,19 @@
}
}
-var regpc [i386.MAXREG]uint32
+var regpc [x86.MAXREG]uint32
func gclean() {
for i := 0; i < len(resvd); i++ {
reg[resvd[i]]--
}
- for i := i386.REG_AX; i <= i386.REG_DI; i++ {
+ for i := x86.REG_AX; i <= x86.REG_DI; i++ {
if reg[i] != 0 {
gc.Yyerror("reg %v left allocated at %x", obj.Rconv(i), regpc[i])
}
}
- for i := i386.REG_X0; i <= i386.REG_X7; i++ {
+ for i := x86.REG_X0; i <= x86.REG_X7; i++ {
if reg[i] != 0 {
gc.Yyerror("reg %v left allocated\n", obj.Rconv(i))
}
@@ -592,7 +592,7 @@
func anyregalloc() bool {
var j int
- for i := i386.REG_AX; i <= i386.REG_DI; i++ {
+ for i := x86.REG_AX; i <= x86.REG_DI; i++ {
if reg[i] == 0 {
goto ok
}
@@ -605,7 +605,7 @@
ok:
}
- for i := i386.REG_X0; i <= i386.REG_X7; i++ {
+ for i := x86.REG_X0; i <= x86.REG_X7; i++ {
if reg[i] != 0 {
return true
}
@@ -641,19 +641,19 @@
gc.TBOOL:
if o != nil && o.Op == gc.OREGISTER {
i = int(o.Val.U.Reg)
- if i >= i386.REG_AX && i <= i386.REG_DI {
+ if i >= x86.REG_AX && i <= x86.REG_DI {
goto out
}
}
- for i = i386.REG_AX; i <= i386.REG_DI; i++ {
+ for i = x86.REG_AX; i <= x86.REG_DI; i++ {
if reg[i] == 0 {
goto out
}
}
fmt.Printf("registers allocated at\n")
- for i := i386.REG_AX; i <= i386.REG_DI; i++ {
+ for i := x86.REG_AX; i <= x86.REG_DI; i++ {
fmt.Printf("\t%v\t%#x\n", obj.Rconv(i), regpc[i])
}
gc.Fatal("out of fixed registers")
@@ -662,24 +662,24 @@
case gc.TFLOAT32,
gc.TFLOAT64:
if gc.Use_sse == 0 {
- i = i386.REG_F0
+ i = x86.REG_F0
goto out
}
if o != nil && o.Op == gc.OREGISTER {
i = int(o.Val.U.Reg)
- if i >= i386.REG_X0 && i <= i386.REG_X7 {
+ if i >= x86.REG_X0 && i <= x86.REG_X7 {
goto out
}
}
- for i = i386.REG_X0; i <= i386.REG_X7; i++ {
+ for i = x86.REG_X0; i <= x86.REG_X7; i++ {
if reg[i] == 0 {
goto out
}
}
fmt.Printf("registers allocated at\n")
- for i := i386.REG_X0; i <= i386.REG_X7; i++ {
+ for i := x86.REG_X0; i <= x86.REG_X7; i++ {
fmt.Printf("\t%v\t%#x\n", obj.Rconv(i), regpc[i])
}
gc.Fatal("out of floating registers")
@@ -692,12 +692,12 @@
return
out:
- if i == i386.REG_SP {
+ if i == x86.REG_SP {
fmt.Printf("alloc SP\n")
}
if reg[i] == 0 {
regpc[i] = uint32(obj.Getcallerpc(&n))
- if i == i386.REG_AX || i == i386.REG_CX || i == i386.REG_DX || i == i386.REG_SP {
+ if i == x86.REG_AX || i == x86.REG_CX || i == x86.REG_DX || i == x86.REG_SP {
gc.Dump("regalloc-o", o)
gc.Fatal("regalloc %v", obj.Rconv(i))
}
@@ -715,7 +715,7 @@
gc.Fatal("regfree: not a register")
}
i := int(n.Val.U.Reg)
- if i == i386.REG_SP {
+ if i == x86.REG_SP {
return
}
if i < 0 || i >= len(reg) {
@@ -725,7 +725,7 @@
gc.Fatal("regfree: reg not allocated")
}
reg[i]--
- if reg[i] == 0 && (i == i386.REG_AX || i == i386.REG_CX || i == i386.REG_DX || i == i386.REG_SP) {
+ if reg[i] == 0 && (i == x86.REG_AX || i == x86.REG_CX || i == x86.REG_DX || i == x86.REG_SP) {
gc.Fatal("regfree %v", obj.Rconv(i))
}
}
@@ -936,7 +936,7 @@
gc.TINT8<<16 | gc.TUINT8,
gc.TUINT8<<16 | gc.TINT8,
gc.TUINT8<<16 | gc.TUINT8:
- a = i386.AMOVB
+ a = x86.AMOVB
case gc.TINT16<<16 | gc.TINT8, // truncate
gc.TUINT16<<16 | gc.TINT8,
@@ -946,7 +946,7 @@
gc.TUINT16<<16 | gc.TUINT8,
gc.TINT32<<16 | gc.TUINT8,
gc.TUINT32<<16 | gc.TUINT8:
- a = i386.AMOVB
+ a = x86.AMOVB
goto rsrc
@@ -959,9 +959,9 @@
split64(f, &flo, &fhi)
var r1 gc.Node
- gc.Nodreg(&r1, t.Type, i386.REG_AX)
+ gc.Nodreg(&r1, t.Type, x86.REG_AX)
gmove(&flo, &r1)
- gins(i386.AMOVB, &r1, t)
+ gins(x86.AMOVB, &r1, t)
splitclean()
return
@@ -969,13 +969,13 @@
gc.TINT16<<16 | gc.TUINT16,
gc.TUINT16<<16 | gc.TINT16,
gc.TUINT16<<16 | gc.TUINT16:
- a = i386.AMOVW
+ a = x86.AMOVW
case gc.TINT32<<16 | gc.TINT16, // truncate
gc.TUINT32<<16 | gc.TINT16,
gc.TINT32<<16 | gc.TUINT16,
gc.TUINT32<<16 | gc.TUINT16:
- a = i386.AMOVW
+ a = x86.AMOVW
goto rsrc
@@ -988,9 +988,9 @@
split64(f, &flo, &fhi)
var r1 gc.Node
- gc.Nodreg(&r1, t.Type, i386.REG_AX)
+ gc.Nodreg(&r1, t.Type, x86.REG_AX)
gmove(&flo, &r1)
- gins(i386.AMOVW, &r1, t)
+ gins(x86.AMOVW, &r1, t)
splitclean()
return
@@ -998,7 +998,7 @@
gc.TINT32<<16 | gc.TUINT32,
gc.TUINT32<<16 | gc.TINT32,
gc.TUINT32<<16 | gc.TUINT32:
- a = i386.AMOVL
+ a = x86.AMOVL
case gc.TINT64<<16 | gc.TINT32, // truncate
gc.TUINT64<<16 | gc.TINT32,
@@ -1009,9 +1009,9 @@
split64(f, &flo, &fhi)
var r1 gc.Node
- gc.Nodreg(&r1, t.Type, i386.REG_AX)
+ gc.Nodreg(&r1, t.Type, x86.REG_AX)
gmove(&flo, &r1)
- gins(i386.AMOVL, &r1, t)
+ gins(x86.AMOVL, &r1, t)
splitclean()
return
@@ -1027,17 +1027,17 @@
var thi gc.Node
split64(t, &tlo, &thi)
if f.Op == gc.OLITERAL {
- gins(i386.AMOVL, &flo, &tlo)
- gins(i386.AMOVL, &fhi, &thi)
+ gins(x86.AMOVL, &flo, &tlo)
+ gins(x86.AMOVL, &fhi, &thi)
} else {
var r1 gc.Node
- gc.Nodreg(&r1, gc.Types[gc.TUINT32], i386.REG_AX)
+ gc.Nodreg(&r1, gc.Types[gc.TUINT32], x86.REG_AX)
var r2 gc.Node
- gc.Nodreg(&r2, gc.Types[gc.TUINT32], i386.REG_DX)
- gins(i386.AMOVL, &flo, &r1)
- gins(i386.AMOVL, &fhi, &r2)
- gins(i386.AMOVL, &r1, &tlo)
- gins(i386.AMOVL, &r2, &thi)
+ gc.Nodreg(&r2, gc.Types[gc.TUINT32], x86.REG_DX)
+ gins(x86.AMOVL, &flo, &r1)
+ gins(x86.AMOVL, &fhi, &r2)
+ gins(x86.AMOVL, &r1, &tlo)
+ gins(x86.AMOVL, &r2, &thi)
}
splitclean()
@@ -1049,13 +1049,13 @@
*/
case gc.TINT8<<16 | gc.TINT16, // sign extend int8
gc.TINT8<<16 | gc.TUINT16:
- a = i386.AMOVBWSX
+ a = x86.AMOVBWSX
goto rdst
case gc.TINT8<<16 | gc.TINT32,
gc.TINT8<<16 | gc.TUINT32:
- a = i386.AMOVBLSX
+ a = x86.AMOVBLSX
goto rdst
case gc.TINT8<<16 | gc.TINT64, // convert via int32
@@ -1066,13 +1066,13 @@
case gc.TUINT8<<16 | gc.TINT16, // zero extend uint8
gc.TUINT8<<16 | gc.TUINT16:
- a = i386.AMOVBWZX
+ a = x86.AMOVBWZX
goto rdst
case gc.TUINT8<<16 | gc.TINT32,
gc.TUINT8<<16 | gc.TUINT32:
- a = i386.AMOVBLZX
+ a = x86.AMOVBLZX
goto rdst
case gc.TUINT8<<16 | gc.TINT64, // convert via uint32
@@ -1083,7 +1083,7 @@
case gc.TINT16<<16 | gc.TINT32, // sign extend int16
gc.TINT16<<16 | gc.TUINT32:
- a = i386.AMOVWLSX
+ a = x86.AMOVWLSX
goto rdst
@@ -1095,7 +1095,7 @@
case gc.TUINT16<<16 | gc.TINT32, // zero extend uint16
gc.TUINT16<<16 | gc.TUINT32:
- a = i386.AMOVWLZX
+ a = x86.AMOVWLZX
goto rdst
@@ -1112,13 +1112,13 @@
split64(t, &tlo, &thi)
var flo gc.Node
- gc.Nodreg(&flo, tlo.Type, i386.REG_AX)
+ gc.Nodreg(&flo, tlo.Type, x86.REG_AX)
var fhi gc.Node
- gc.Nodreg(&fhi, thi.Type, i386.REG_DX)
+ gc.Nodreg(&fhi, thi.Type, x86.REG_DX)
gmove(f, &flo)
- gins(i386.ACDQ, nil, nil)
- gins(i386.AMOVL, &flo, &tlo)
- gins(i386.AMOVL, &fhi, &thi)
+ gins(x86.ACDQ, nil, nil)
+ gins(x86.AMOVL, &flo, &tlo)
+ gins(x86.AMOVL, &fhi, &thi)
splitclean()
return
@@ -1129,7 +1129,7 @@
split64(t, &tlo, &thi)
gmove(f, &tlo)
- gins(i386.AMOVL, ncon(0), &thi)
+ gins(x86.AMOVL, ncon(0), &thi)
splitclean()
return
}
@@ -1220,11 +1220,11 @@
}
var r1 gc.Node
- gc.Nodreg(&r1, gc.Types[ft], i386.REG_F0)
+ gc.Nodreg(&r1, gc.Types[ft], x86.REG_F0)
if ft == gc.TFLOAT32 {
- gins(i386.AFMOVF, f, &r1)
+ gins(x86.AFMOVF, f, &r1)
} else {
- gins(i386.AFMOVD, f, &r1)
+ gins(x86.AFMOVD, f, &r1)
}
// set round to zero mode during conversion
@@ -1233,17 +1233,17 @@
var t2 gc.Node
memname(&t2, gc.Types[gc.TUINT16])
- gins(i386.AFSTCW, nil, &t1)
- gins(i386.AMOVW, ncon(0xf7f), &t2)
- gins(i386.AFLDCW, &t2, nil)
+ gins(x86.AFSTCW, nil, &t1)
+ gins(x86.AMOVW, ncon(0xf7f), &t2)
+ gins(x86.AFLDCW, &t2, nil)
if tt == gc.TINT16 {
- gins(i386.AFMOVWP, &r1, t)
+ gins(x86.AFMOVWP, &r1, t)
} else if tt == gc.TINT32 {
- gins(i386.AFMOVLP, &r1, t)
+ gins(x86.AFMOVLP, &r1, t)
} else {
- gins(i386.AFMOVVP, &r1, t)
+ gins(x86.AFMOVVP, &r1, t)
}
- gins(i386.AFLDCW, &t1, nil)
+ gins(x86.AFLDCW, &t1, nil)
return
case gc.TFLOAT32<<16 | gc.TUINT64,
@@ -1255,36 +1255,36 @@
bignodes()
var f0 gc.Node
- gc.Nodreg(&f0, gc.Types[ft], i386.REG_F0)
+ gc.Nodreg(&f0, gc.Types[ft], x86.REG_F0)
var f1 gc.Node
- gc.Nodreg(&f1, gc.Types[ft], i386.REG_F0+1)
+ gc.Nodreg(&f1, gc.Types[ft], x86.REG_F0+1)
var ax gc.Node
- gc.Nodreg(&ax, gc.Types[gc.TUINT16], i386.REG_AX)
+ gc.Nodreg(&ax, gc.Types[gc.TUINT16], x86.REG_AX)
if ft == gc.TFLOAT32 {
- gins(i386.AFMOVF, f, &f0)
+ gins(x86.AFMOVF, f, &f0)
} else {
- gins(i386.AFMOVD, f, &f0)
+ gins(x86.AFMOVD, f, &f0)
}
// if 0 > v { answer = 0 }
- gins(i386.AFMOVD, &zerof, &f0)
+ gins(x86.AFMOVD, &zerof, &f0)
- gins(i386.AFUCOMIP, &f0, &f1)
+ gins(x86.AFUCOMIP, &f0, &f1)
p1 := gc.Gbranch(optoas(gc.OGT, gc.Types[tt]), nil, 0)
// if 1<<64 <= v { answer = 0 too }
- gins(i386.AFMOVD, &two64f, &f0)
+ gins(x86.AFMOVD, &two64f, &f0)
- gins(i386.AFUCOMIP, &f0, &f1)
+ gins(x86.AFUCOMIP, &f0, &f1)
p2 := gc.Gbranch(optoas(gc.OGT, gc.Types[tt]), nil, 0)
gc.Patch(p1, gc.Pc)
- gins(i386.AFMOVVP, &f0, t) // don't care about t, but will pop the stack
+ gins(x86.AFMOVVP, &f0, t) // don't care about t, but will pop the stack
var thi gc.Node
var tlo gc.Node
split64(t, &tlo, &thi)
- gins(i386.AMOVL, ncon(0), &tlo)
- gins(i386.AMOVL, ncon(0), &thi)
+ gins(x86.AMOVL, ncon(0), &tlo)
+ gins(x86.AMOVL, ncon(0), &thi)
splitclean()
p1 = gc.Gbranch(obj.AJMP, nil, 0)
gc.Patch(p2, gc.Pc)
@@ -1299,28 +1299,28 @@
var t2 gc.Node
memname(&t2, gc.Types[gc.TUINT16])
- gins(i386.AFSTCW, nil, &t1)
- gins(i386.AMOVW, ncon(0xf7f), &t2)
- gins(i386.AFLDCW, &t2, nil)
+ gins(x86.AFSTCW, nil, &t1)
+ gins(x86.AMOVW, ncon(0xf7f), &t2)
+ gins(x86.AFLDCW, &t2, nil)
// actual work
- gins(i386.AFMOVD, &two63f, &f0)
+ gins(x86.AFMOVD, &two63f, &f0)
- gins(i386.AFUCOMIP, &f0, &f1)
+ gins(x86.AFUCOMIP, &f0, &f1)
p2 = gc.Gbranch(optoas(gc.OLE, gc.Types[tt]), nil, 0)
- gins(i386.AFMOVVP, &f0, t)
+ gins(x86.AFMOVVP, &f0, t)
p3 := gc.Gbranch(obj.AJMP, nil, 0)
gc.Patch(p2, gc.Pc)
- gins(i386.AFMOVD, &two63f, &f0)
- gins(i386.AFSUBDP, &f0, &f1)
- gins(i386.AFMOVVP, &f0, t)
+ gins(x86.AFMOVD, &two63f, &f0)
+ gins(x86.AFSUBDP, &f0, &f1)
+ gins(x86.AFMOVVP, &f0, t)
split64(t, &tlo, &thi)
- gins(i386.AXORL, ncon(0x80000000), &thi) // + 2^63
+ gins(x86.AXORL, ncon(0x80000000), &thi) // + 2^63
gc.Patch(p3, gc.Pc)
splitclean()
// restore rounding mode
- gins(i386.AFLDCW, &t1, nil)
+ gins(x86.AFLDCW, &t1, nil)
gc.Patch(p1, gc.Pc)
return
@@ -1334,12 +1334,12 @@
goto hardmem
}
var f0 gc.Node
- gc.Nodreg(&f0, t.Type, i386.REG_F0)
- gins(i386.AFMOVV, f, &f0)
+ gc.Nodreg(&f0, t.Type, x86.REG_F0)
+ gins(x86.AFMOVV, f, &f0)
if tt == gc.TFLOAT32 {
- gins(i386.AFMOVFP, &f0, t)
+ gins(x86.AFMOVFP, &f0, t)
} else {
- gins(i386.AFMOVDP, &f0, t)
+ gins(x86.AFMOVDP, &f0, t)
}
return
@@ -1349,30 +1349,30 @@
case gc.TUINT64<<16 | gc.TFLOAT32,
gc.TUINT64<<16 | gc.TFLOAT64:
var ax gc.Node
- gc.Nodreg(&ax, gc.Types[gc.TUINT32], i386.REG_AX)
+ gc.Nodreg(&ax, gc.Types[gc.TUINT32], x86.REG_AX)
var dx gc.Node
- gc.Nodreg(&dx, gc.Types[gc.TUINT32], i386.REG_DX)
+ gc.Nodreg(&dx, gc.Types[gc.TUINT32], x86.REG_DX)
var cx gc.Node
- gc.Nodreg(&cx, gc.Types[gc.TUINT32], i386.REG_CX)
+ gc.Nodreg(&cx, gc.Types[gc.TUINT32], x86.REG_CX)
var t1 gc.Node
gc.Tempname(&t1, f.Type)
var tlo gc.Node
var thi gc.Node
split64(&t1, &tlo, &thi)
gmove(f, &t1)
- gins(i386.ACMPL, &thi, ncon(0))
- p1 := gc.Gbranch(i386.AJLT, nil, 0)
+ gins(x86.ACMPL, &thi, ncon(0))
+ p1 := gc.Gbranch(x86.AJLT, nil, 0)
// native
var r1 gc.Node
- gc.Nodreg(&r1, gc.Types[tt], i386.REG_F0)
+ gc.Nodreg(&r1, gc.Types[tt], x86.REG_F0)
- gins(i386.AFMOVV, &t1, &r1)
+ gins(x86.AFMOVV, &t1, &r1)
if tt == gc.TFLOAT32 {
- gins(i386.AFMOVFP, &r1, t)
+ gins(x86.AFMOVFP, &r1, t)
} else {
- gins(i386.AFMOVDP, &r1, t)
+ gins(x86.AFMOVDP, &r1, t)
}
p2 := gc.Gbranch(obj.AJMP, nil, 0)
@@ -1381,25 +1381,25 @@
gmove(&tlo, &ax)
gmove(&thi, &dx)
- p1 = gins(i386.ASHRL, ncon(1), &ax)
- p1.From.Index = i386.REG_DX // double-width shift DX -> AX
+ p1 = gins(x86.ASHRL, ncon(1), &ax)
+ p1.From.Index = x86.REG_DX // double-width shift DX -> AX
p1.From.Scale = 0
- gins(i386.AMOVL, ncon(0), &cx)
- gins(i386.ASETCC, nil, &cx)
- gins(i386.AORL, &cx, &ax)
- gins(i386.ASHRL, ncon(1), &dx)
+ gins(x86.AMOVL, ncon(0), &cx)
+ gins(x86.ASETCC, nil, &cx)
+ gins(x86.AORL, &cx, &ax)
+ gins(x86.ASHRL, ncon(1), &dx)
gmove(&dx, &thi)
gmove(&ax, &tlo)
- gc.Nodreg(&r1, gc.Types[tt], i386.REG_F0)
+ gc.Nodreg(&r1, gc.Types[tt], x86.REG_F0)
var r2 gc.Node
- gc.Nodreg(&r2, gc.Types[tt], i386.REG_F0+1)
- gins(i386.AFMOVV, &t1, &r1)
- gins(i386.AFMOVD, &r1, &r1)
- gins(i386.AFADDDP, &r1, &r2)
+ gc.Nodreg(&r2, gc.Types[tt], x86.REG_F0+1)
+ gins(x86.AFMOVV, &t1, &r1)
+ gins(x86.AFMOVD, &r1, &r1)
+ gins(x86.AFADDDP, &r1, &r2)
if tt == gc.TFLOAT32 {
- gins(i386.AFMOVFP, &r1, t)
+ gins(x86.AFMOVFP, &r1, t)
} else {
- gins(i386.AFMOVDP, &r1, t)
+ gins(x86.AFMOVDP, &r1, t)
}
gc.Patch(p2, gc.Pc)
splitclean()
@@ -1449,12 +1449,12 @@
goto hardmem
}
var r1 gc.Node
- gc.Nodreg(&r1, gc.Types[ft], i386.REG_F0)
+ gc.Nodreg(&r1, gc.Types[ft], x86.REG_F0)
if f.Op != gc.OREGISTER {
if ft == gc.TFLOAT32 {
- gins(i386.AFMOVF, f, &r1)
+ gins(x86.AFMOVF, f, &r1)
} else {
- gins(i386.AFMOVD, f, &r1)
+ gins(x86.AFMOVD, f, &r1)
}
}
@@ -1464,17 +1464,17 @@
var t2 gc.Node
memname(&t2, gc.Types[gc.TUINT16])
- gins(i386.AFSTCW, nil, &t1)
- gins(i386.AMOVW, ncon(0xf7f), &t2)
- gins(i386.AFLDCW, &t2, nil)
+ gins(x86.AFSTCW, nil, &t1)
+ gins(x86.AMOVW, ncon(0xf7f), &t2)
+ gins(x86.AFLDCW, &t2, nil)
if tt == gc.TINT16 {
- gins(i386.AFMOVWP, &r1, t)
+ gins(x86.AFMOVWP, &r1, t)
} else if tt == gc.TINT32 {
- gins(i386.AFMOVLP, &r1, t)
+ gins(x86.AFMOVLP, &r1, t)
} else {
- gins(i386.AFMOVVP, &r1, t)
+ gins(x86.AFMOVVP, &r1, t)
}
- gins(i386.AFLDCW, &t1, nil)
+ gins(x86.AFLDCW, &t1, nil)
return
// convert via int32.
@@ -1493,9 +1493,9 @@
gc.Fatal("gmove %v", gc.Nconv(t, 0))
case gc.TINT8:
- gins(i386.ACMPL, &t1, ncon(-0x80&(1<<32-1)))
+ gins(x86.ACMPL, &t1, ncon(-0x80&(1<<32-1)))
p1 := gc.Gbranch(optoas(gc.OLT, gc.Types[gc.TINT32]), nil, -1)
- gins(i386.ACMPL, &t1, ncon(0x7f))
+ gins(x86.ACMPL, &t1, ncon(0x7f))
p2 := gc.Gbranch(optoas(gc.OGT, gc.Types[gc.TINT32]), nil, -1)
p3 := gc.Gbranch(obj.AJMP, nil, 0)
gc.Patch(p1, gc.Pc)
@@ -1505,16 +1505,16 @@
gmove(&t1, t)
case gc.TUINT8:
- gins(i386.ATESTL, ncon(0xffffff00), &t1)
- p1 := gc.Gbranch(i386.AJEQ, nil, +1)
- gins(i386.AMOVL, ncon(0), &t1)
+ gins(x86.ATESTL, ncon(0xffffff00), &t1)
+ p1 := gc.Gbranch(x86.AJEQ, nil, +1)
+ gins(x86.AMOVL, ncon(0), &t1)
gc.Patch(p1, gc.Pc)
gmove(&t1, t)
case gc.TUINT16:
- gins(i386.ATESTL, ncon(0xffff0000), &t1)
- p1 := gc.Gbranch(i386.AJEQ, nil, +1)
- gins(i386.AMOVL, ncon(0), &t1)
+ gins(x86.ATESTL, ncon(0xffff0000), &t1)
+ p1 := gc.Gbranch(x86.AJEQ, nil, +1)
+ gins(x86.AMOVL, ncon(0), &t1)
gc.Patch(p1, gc.Pc)
gmove(&t1, t)
}
@@ -1547,13 +1547,13 @@
switch ft {
case gc.TINT16:
- a = i386.AFMOVW
+ a = x86.AFMOVW
case gc.TINT32:
- a = i386.AFMOVL
+ a = x86.AFMOVL
default:
- a = i386.AFMOVV
+ a = x86.AFMOVV
}
// convert via int32 memory
@@ -1589,23 +1589,23 @@
goto hard
}
if f.Op == gc.OREGISTER && t.Op == gc.OREGISTER {
- if f.Val.U.Reg != i386.REG_F0 || t.Val.U.Reg != i386.REG_F0 {
+ if f.Val.U.Reg != x86.REG_F0 || t.Val.U.Reg != x86.REG_F0 {
goto fatal
}
return
}
- a = i386.AFMOVF
+ a = x86.AFMOVF
if ft == gc.TFLOAT64 {
- a = i386.AFMOVD
+ a = x86.AFMOVD
}
if gc.Ismem(t) {
- if f.Op != gc.OREGISTER || f.Val.U.Reg != i386.REG_F0 {
+ if f.Op != gc.OREGISTER || f.Val.U.Reg != x86.REG_F0 {
gc.Fatal("gmove %v", gc.Nconv(f, 0))
}
- a = i386.AFMOVFP
+ a = x86.AFMOVFP
if ft == gc.TFLOAT64 {
- a = i386.AFMOVDP
+ a = x86.AFMOVDP
}
}
@@ -1614,16 +1614,16 @@
goto hard
}
if f.Op == gc.OREGISTER && t.Op == gc.OREGISTER {
- if f.Val.U.Reg != i386.REG_F0 || t.Val.U.Reg != i386.REG_F0 {
+ if f.Val.U.Reg != x86.REG_F0 || t.Val.U.Reg != x86.REG_F0 {
goto fatal
}
return
}
if f.Op == gc.OREGISTER {
- gins(i386.AFMOVDP, f, t)
+ gins(x86.AFMOVDP, f, t)
} else {
- gins(i386.AFMOVF, f, t)
+ gins(x86.AFMOVF, f, t)
}
return
@@ -1634,15 +1634,15 @@
if f.Op == gc.OREGISTER && t.Op == gc.OREGISTER {
var r1 gc.Node
gc.Tempname(&r1, gc.Types[gc.TFLOAT32])
- gins(i386.AFMOVFP, f, &r1)
- gins(i386.AFMOVF, &r1, t)
+ gins(x86.AFMOVFP, f, &r1)
+ gins(x86.AFMOVF, &r1, t)
return
}
if f.Op == gc.OREGISTER {
- gins(i386.AFMOVFP, f, t)
+ gins(x86.AFMOVFP, f, t)
} else {
- gins(i386.AFMOVD, f, t)
+ gins(x86.AFMOVD, f, t)
}
return
}
@@ -1713,11 +1713,11 @@
goto hardmem
case gc.TFLOAT32<<16 | gc.TINT32:
- a = i386.ACVTTSS2SL
+ a = x86.ACVTTSS2SL
goto rdst
case gc.TFLOAT64<<16 | gc.TINT32:
- a = i386.ACVTTSD2SL
+ a = x86.ACVTTSD2SL
goto rdst
// convert via int32 memory
@@ -1744,28 +1744,28 @@
goto hardmem
case gc.TINT32<<16 | gc.TFLOAT32:
- a = i386.ACVTSL2SS
+ a = x86.ACVTSL2SS
goto rdst
case gc.TINT32<<16 | gc.TFLOAT64:
- a = i386.ACVTSL2SD
+ a = x86.ACVTSL2SD
goto rdst
/*
* float to float
*/
case gc.TFLOAT32<<16 | gc.TFLOAT32:
- a = i386.AMOVSS
+ a = x86.AMOVSS
case gc.TFLOAT64<<16 | gc.TFLOAT64:
- a = i386.AMOVSD
+ a = x86.AMOVSD
case gc.TFLOAT32<<16 | gc.TFLOAT64:
- a = i386.ACVTSS2SD
+ a = x86.ACVTSS2SD
goto rdst
case gc.TFLOAT64<<16 | gc.TFLOAT32:
- a = i386.ACVTSD2SS
+ a = x86.ACVTSD2SS
goto rdst
}
@@ -1820,25 +1820,25 @@
* as f, t
*/
func gins(as int, f *gc.Node, t *gc.Node) *obj.Prog {
- if as == i386.AFMOVF && f != nil && f.Op == gc.OREGISTER && t != nil && t.Op == gc.OREGISTER {
+ if as == x86.AFMOVF && f != nil && f.Op == gc.OREGISTER && t != nil && t.Op == gc.OREGISTER {
gc.Fatal("gins MOVF reg, reg")
}
- if as == i386.ACVTSD2SS && f != nil && f.Op == gc.OLITERAL {
+ if as == x86.ACVTSD2SS && f != nil && f.Op == gc.OLITERAL {
gc.Fatal("gins CVTSD2SS const")
}
- if as == i386.AMOVSD && t != nil && t.Op == gc.OREGISTER && t.Val.U.Reg == i386.REG_F0 {
+ if as == x86.AMOVSD && t != nil && t.Op == gc.OREGISTER && t.Val.U.Reg == x86.REG_F0 {
gc.Fatal("gins MOVSD into F0")
}
switch as {
- case i386.AMOVB,
- i386.AMOVW,
- i386.AMOVL:
+ case x86.AMOVB,
+ x86.AMOVW,
+ x86.AMOVL:
if f != nil && t != nil && samaddr(f, t) {
return nil
}
- case i386.ALEAL:
+ case x86.ALEAL:
if f != nil && gc.Isconst(f, gc.CTNIL) {
gc.Fatal("gins LEAL nil %v", gc.Tconv(f.Type, 0))
}
@@ -1865,13 +1865,13 @@
w := 0
switch as {
- case i386.AMOVB:
+ case x86.AMOVB:
w = 1
- case i386.AMOVW:
+ case x86.AMOVW:
w = 2
- case i386.AMOVL:
+ case x86.AMOVL:
w = 4
}
diff --git a/src/cmd/8g/peep.go b/src/cmd/8g/peep.go
index a85cdc3..1967d5f 100644
--- a/src/cmd/8g/peep.go
+++ b/src/cmd/8g/peep.go
@@ -33,13 +33,13 @@
import (
"cmd/internal/gc"
"cmd/internal/obj"
- i386 "cmd/internal/obj/x86"
+ "cmd/internal/obj/x86"
"fmt"
)
const (
REGEXT = 0
- exregoffset = i386.REG_DI
+ exregoffset = x86.REG_DI
)
var gactive uint32
@@ -100,20 +100,20 @@
for r := g.Start; r != nil; r = r.Link {
p = r.Prog
switch p.As {
- case i386.ALEAL:
+ case x86.ALEAL:
if regtyp(&p.To) {
if p.From.Sym != nil {
- if p.From.Index == i386.REG_NONE {
+ if p.From.Index == x86.REG_NONE {
conprop(r)
}
}
}
- case i386.AMOVB,
- i386.AMOVW,
- i386.AMOVL,
- i386.AMOVSS,
- i386.AMOVSD:
+ case x86.AMOVB,
+ x86.AMOVW,
+ x86.AMOVL,
+ x86.AMOVSS,
+ x86.AMOVSD:
if regtyp(&p.To) {
if p.From.Type == obj.TYPE_CONST || p.From.Type == obj.TYPE_FCONST {
conprop(r)
@@ -135,9 +135,9 @@
for r = g.Start; r != nil; r = r.Link {
p = r.Prog
switch p.As {
- case i386.AMOVL,
- i386.AMOVSS,
- i386.AMOVSD:
+ case x86.AMOVL,
+ x86.AMOVSS,
+ x86.AMOVSD:
if regtyp(&p.To) {
if regtyp(&p.From) {
if copyprop(g, r) {
@@ -150,66 +150,66 @@
}
}
- case i386.AMOVBLZX,
- i386.AMOVWLZX,
- i386.AMOVBLSX,
- i386.AMOVWLSX:
+ case x86.AMOVBLZX,
+ x86.AMOVWLZX,
+ x86.AMOVBLSX,
+ x86.AMOVWLSX:
if regtyp(&p.To) {
r1 = rnops(gc.Uniqs(r))
if r1 != nil {
p1 = r1.Prog
if p.As == p1.As && p.To.Type == p1.From.Type && p.To.Reg == p1.From.Reg {
- p1.As = i386.AMOVL
+ p1.As = x86.AMOVL
t++
}
}
}
- case i386.AADDL,
- i386.AADDW:
+ case x86.AADDL,
+ x86.AADDW:
if p.From.Type != obj.TYPE_CONST || needc(p.Link) {
break
}
if p.From.Offset == -1 {
- if p.As == i386.AADDL {
- p.As = i386.ADECL
+ if p.As == x86.AADDL {
+ p.As = x86.ADECL
} else {
- p.As = i386.ADECW
+ p.As = x86.ADECW
}
p.From = obj.Addr{}
break
}
if p.From.Offset == 1 {
- if p.As == i386.AADDL {
- p.As = i386.AINCL
+ if p.As == x86.AADDL {
+ p.As = x86.AINCL
} else {
- p.As = i386.AINCW
+ p.As = x86.AINCW
}
p.From = obj.Addr{}
break
}
- case i386.ASUBL,
- i386.ASUBW:
+ case x86.ASUBL,
+ x86.ASUBW:
if p.From.Type != obj.TYPE_CONST || needc(p.Link) {
break
}
if p.From.Offset == -1 {
- if p.As == i386.ASUBL {
- p.As = i386.AINCL
+ if p.As == x86.ASUBL {
+ p.As = x86.AINCL
} else {
- p.As = i386.AINCW
+ p.As = x86.AINCW
}
p.From = obj.Addr{}
break
}
if p.From.Offset == 1 {
- if p.As == i386.ASUBL {
- p.As = i386.ADECL
+ if p.As == x86.ASUBL {
+ p.As = x86.ADECL
} else {
- p.As = i386.ADECW
+ p.As = x86.ADECW
}
p.From = obj.Addr{}
break
@@ -228,10 +228,10 @@
// the processor can do better if we do moves using both.
for r := g.Start; r != nil; r = r.Link {
p = r.Prog
- if p.As == i386.AMOVSD {
+ if p.As == x86.AMOVSD {
if regtyp(&p.From) {
if regtyp(&p.To) {
- p.As = i386.AMOVAPD
+ p.As = x86.AMOVAPD
}
}
}
@@ -252,7 +252,7 @@
}
func regtyp(a *obj.Addr) bool {
- return a.Type == obj.TYPE_REG && (i386.REG_AX <= a.Reg && a.Reg <= i386.REG_DI || i386.REG_X0 <= a.Reg && a.Reg <= i386.REG_X7)
+ return a.Type == obj.TYPE_REG && (x86.REG_AX <= a.Reg && a.Reg <= x86.REG_DI || x86.REG_X0 <= a.Reg && a.Reg <= x86.REG_X7)
}
// movb elimination.
@@ -269,21 +269,21 @@
p = r.Prog
if regtyp(&p.To) {
switch p.As {
- case i386.AINCB,
- i386.AINCW:
- p.As = i386.AINCL
+ case x86.AINCB,
+ x86.AINCW:
+ p.As = x86.AINCL
- case i386.ADECB,
- i386.ADECW:
- p.As = i386.ADECL
+ case x86.ADECB,
+ x86.ADECW:
+ p.As = x86.ADECL
- case i386.ANEGB,
- i386.ANEGW:
- p.As = i386.ANEGL
+ case x86.ANEGB,
+ x86.ANEGW:
+ p.As = x86.ANEGL
- case i386.ANOTB,
- i386.ANOTW:
- p.As = i386.ANOTL
+ case x86.ANOTB,
+ x86.ANOTW:
+ p.As = x86.ANOTL
}
if regtyp(&p.From) || p.From.Type == obj.TYPE_CONST {
@@ -292,54 +292,54 @@
// we don't switch to 32-bit arithmetic if it can
// change how the carry bit is set (and the carry bit is needed).
switch p.As {
- case i386.AMOVB,
- i386.AMOVW:
- p.As = i386.AMOVL
+ case x86.AMOVB,
+ x86.AMOVW:
+ p.As = x86.AMOVL
- case i386.AADDB,
- i386.AADDW:
+ case x86.AADDB,
+ x86.AADDW:
if !needc(p.Link) {
- p.As = i386.AADDL
+ p.As = x86.AADDL
}
- case i386.ASUBB,
- i386.ASUBW:
+ case x86.ASUBB,
+ x86.ASUBW:
if !needc(p.Link) {
- p.As = i386.ASUBL
+ p.As = x86.ASUBL
}
- case i386.AMULB,
- i386.AMULW:
- p.As = i386.AMULL
+ case x86.AMULB,
+ x86.AMULW:
+ p.As = x86.AMULL
- case i386.AIMULB,
- i386.AIMULW:
- p.As = i386.AIMULL
+ case x86.AIMULB,
+ x86.AIMULW:
+ p.As = x86.AIMULL
- case i386.AANDB,
- i386.AANDW:
- p.As = i386.AANDL
+ case x86.AANDB,
+ x86.AANDW:
+ p.As = x86.AANDL
- case i386.AORB,
- i386.AORW:
- p.As = i386.AORL
+ case x86.AORB,
+ x86.AORW:
+ p.As = x86.AORL
- case i386.AXORB,
- i386.AXORW:
- p.As = i386.AXORL
+ case x86.AXORB,
+ x86.AXORW:
+ p.As = x86.AXORL
- case i386.ASHLB,
- i386.ASHLW:
- p.As = i386.ASHLL
+ case x86.ASHLB,
+ x86.ASHLW:
+ p.As = x86.ASHLL
}
} else {
// explicit zero extension
switch p.As {
- case i386.AMOVB:
- p.As = i386.AMOVBLZX
+ case x86.AMOVB:
+ p.As = x86.AMOVBLZX
- case i386.AMOVW:
- p.As = i386.AMOVWLZX
+ case x86.AMOVW:
+ p.As = x86.AMOVWLZX
}
}
}
@@ -581,7 +581,7 @@
if REGEXT != 0 /*TypeKind(100016)*/ && v.Type == obj.TYPE_REG && v.Reg <= REGEXT && v.Reg > exregoffset {
return 2
}
- if i386.REGARG >= 0 && v.Type == obj.TYPE_REG && v.Reg == i386.REGARG {
+ if x86.REGARG >= 0 && v.Type == obj.TYPE_REG && v.Reg == x86.REGARG {
return 2
}
if v.Type == p.From.Type && v.Reg == p.From.Reg {
@@ -601,7 +601,7 @@
return 3
case obj.ATEXT:
- if i386.REGARG >= 0 && v.Type == obj.TYPE_REG && v.Reg == i386.REGARG {
+ if x86.REGARG >= 0 && v.Type == obj.TYPE_REG && v.Reg == x86.REGARG {
return 3
}
return 0
@@ -666,10 +666,10 @@
* semantics
*/
func copyas(a *obj.Addr, v *obj.Addr) bool {
- if i386.REG_AL <= a.Reg && a.Reg <= i386.REG_BL {
+ if x86.REG_AL <= a.Reg && a.Reg <= x86.REG_BL {
gc.Fatal("use of byte register")
}
- if i386.REG_AL <= v.Reg && v.Reg <= i386.REG_BL {
+ if x86.REG_AL <= v.Reg && v.Reg <= x86.REG_BL {
gc.Fatal("use of byte register")
}
@@ -728,7 +728,7 @@
func copysub(a *obj.Addr, v *obj.Addr, s *obj.Addr, f int) int {
if copyas(a, v) {
reg := int(s.Reg)
- if reg >= i386.REG_AX && reg <= i386.REG_DI || reg >= i386.REG_X0 && reg <= i386.REG_X7 {
+ if reg >= x86.REG_AX && reg <= x86.REG_DI || reg >= x86.REG_X0 && reg <= x86.REG_X7 {
if f != 0 {
a.Reg = int16(reg)
}
@@ -740,7 +740,7 @@
if regtyp(v) {
reg := int(v.Reg)
if a.Type == obj.TYPE_MEM && int(a.Reg) == reg {
- if (s.Reg == i386.REG_BP) && a.Index != obj.TYPE_NONE {
+ if (s.Reg == x86.REG_BP) && a.Index != obj.TYPE_NONE {
return 1 /* can't use BP-base with index */
}
if f != 0 {
@@ -813,9 +813,9 @@
}
func smallindir(a *obj.Addr, reg *obj.Addr) bool {
- return regtyp(reg) && a.Type == obj.TYPE_MEM && a.Reg == reg.Reg && a.Index == i386.REG_NONE && 0 <= a.Offset && a.Offset < 4096
+ return regtyp(reg) && a.Type == obj.TYPE_MEM && a.Reg == reg.Reg && a.Index == x86.REG_NONE && 0 <= a.Offset && a.Offset < 4096
}
func stackaddr(a *obj.Addr) bool {
- return a.Type == obj.TYPE_REG && a.Reg == i386.REG_SP
+ return a.Type == obj.TYPE_REG && a.Reg == x86.REG_SP
}
diff --git a/src/cmd/8g/prog.go b/src/cmd/8g/prog.go
index 054ac49..3cb6e51 100644
--- a/src/cmd/8g/prog.go
+++ b/src/cmd/8g/prog.go
@@ -7,16 +7,16 @@
import (
"cmd/internal/gc"
"cmd/internal/obj"
- i386 "cmd/internal/obj/x86"
+ "cmd/internal/obj/x86"
)
var (
- AX = RtoB(i386.REG_AX)
- BX = RtoB(i386.REG_BX)
- CX = RtoB(i386.REG_CX)
- DX = RtoB(i386.REG_DX)
- DI = RtoB(i386.REG_DI)
- SI = RtoB(i386.REG_SI)
+ AX = RtoB(x86.REG_AX)
+ BX = RtoB(x86.REG_BX)
+ CX = RtoB(x86.REG_CX)
+ DX = RtoB(x86.REG_DX)
+ DI = RtoB(x86.REG_DI)
+ SI = RtoB(x86.REG_SI)
LeftRdwr uint32 = gc.LeftRead | gc.LeftWrite
RightRdwr uint32 = gc.RightRead | gc.RightWrite
)
@@ -30,7 +30,7 @@
// size variants of an operation even if we just use a subset.
//
// The table is formatted for 8-space tabs.
-var progtable = [i386.ALAST]gc.ProgInfo{
+var progtable = [x86.ALAST]gc.ProgInfo{
obj.ATYPE: gc.ProgInfo{gc.Pseudo | gc.Skip, 0, 0, 0},
obj.ATEXT: gc.ProgInfo{gc.Pseudo, 0, 0, 0},
obj.AFUNCDATA: gc.ProgInfo{gc.Pseudo, 0, 0, 0},
@@ -43,217 +43,217 @@
// NOP is an internal no-op that also stands
// for USED and SET annotations, not the Intel opcode.
- obj.ANOP: gc.ProgInfo{gc.LeftRead | gc.RightWrite, 0, 0, 0},
- i386.AADCL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry | gc.UseCarry, 0, 0, 0},
- i386.AADCW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry | gc.UseCarry, 0, 0, 0},
- i386.AADDB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.AADDL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.AADDW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.AADDSD: gc.ProgInfo{gc.SizeD | gc.LeftRead | RightRdwr, 0, 0, 0},
- i386.AADDSS: gc.ProgInfo{gc.SizeF | gc.LeftRead | RightRdwr, 0, 0, 0},
- i386.AANDB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.AANDL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.AANDW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- obj.ACALL: gc.ProgInfo{gc.RightAddr | gc.Call | gc.KillCarry, 0, 0, 0},
- i386.ACDQ: gc.ProgInfo{gc.OK, AX, AX | DX, 0},
- i386.ACWD: gc.ProgInfo{gc.OK, AX, AX | DX, 0},
- i386.ACLD: gc.ProgInfo{gc.OK, 0, 0, 0},
- i386.ASTD: gc.ProgInfo{gc.OK, 0, 0, 0},
- i386.ACMPB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
- i386.ACMPL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
- i386.ACMPW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
- i386.ACOMISD: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
- i386.ACOMISS: gc.ProgInfo{gc.SizeF | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
- i386.ACVTSD2SL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.ACVTSD2SS: gc.ProgInfo{gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.ACVTSL2SD: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.ACVTSL2SS: gc.ProgInfo{gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.ACVTSS2SD: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.ACVTSS2SL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.ACVTTSD2SL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.ACVTTSS2SL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.ADECB: gc.ProgInfo{gc.SizeB | RightRdwr, 0, 0, 0},
- i386.ADECL: gc.ProgInfo{gc.SizeL | RightRdwr, 0, 0, 0},
- i386.ADECW: gc.ProgInfo{gc.SizeW | RightRdwr, 0, 0, 0},
- i386.ADIVB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.SetCarry, AX, AX, 0},
- i386.ADIVL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.SetCarry, AX | DX, AX | DX, 0},
- i386.ADIVW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.SetCarry, AX | DX, AX | DX, 0},
- i386.ADIVSD: gc.ProgInfo{gc.SizeD | gc.LeftRead | RightRdwr, 0, 0, 0},
- i386.ADIVSS: gc.ProgInfo{gc.SizeF | gc.LeftRead | RightRdwr, 0, 0, 0},
- i386.AFLDCW: gc.ProgInfo{gc.SizeW | gc.LeftAddr, 0, 0, 0},
- i386.AFSTCW: gc.ProgInfo{gc.SizeW | gc.RightAddr, 0, 0, 0},
- i386.AFSTSW: gc.ProgInfo{gc.SizeW | gc.RightAddr | gc.RightWrite, 0, 0, 0},
- i386.AFADDD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFADDDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFADDF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFCOMD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | gc.RightRead, 0, 0, 0},
- i386.AFCOMDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | gc.RightRead, 0, 0, 0},
- i386.AFCOMDPP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | gc.RightRead, 0, 0, 0},
- i386.AFCOMF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | gc.RightRead, 0, 0, 0},
- i386.AFCOMFP: gc.ProgInfo{gc.SizeF | gc.LeftAddr | gc.RightRead, 0, 0, 0},
- i386.AFUCOMIP: gc.ProgInfo{gc.SizeF | gc.LeftAddr | gc.RightRead, 0, 0, 0},
- i386.AFCHS: gc.ProgInfo{gc.SizeD | RightRdwr, 0, 0, 0}, // also SizeF
+ obj.ANOP: gc.ProgInfo{gc.LeftRead | gc.RightWrite, 0, 0, 0},
+ x86.AADCL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry | gc.UseCarry, 0, 0, 0},
+ x86.AADCW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry | gc.UseCarry, 0, 0, 0},
+ x86.AADDB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.AADDL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.AADDW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.AADDSD: gc.ProgInfo{gc.SizeD | gc.LeftRead | RightRdwr, 0, 0, 0},
+ x86.AADDSS: gc.ProgInfo{gc.SizeF | gc.LeftRead | RightRdwr, 0, 0, 0},
+ x86.AANDB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.AANDL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.AANDW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ obj.ACALL: gc.ProgInfo{gc.RightAddr | gc.Call | gc.KillCarry, 0, 0, 0},
+ x86.ACDQ: gc.ProgInfo{gc.OK, AX, AX | DX, 0},
+ x86.ACWD: gc.ProgInfo{gc.OK, AX, AX | DX, 0},
+ x86.ACLD: gc.ProgInfo{gc.OK, 0, 0, 0},
+ x86.ASTD: gc.ProgInfo{gc.OK, 0, 0, 0},
+ x86.ACMPB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
+ x86.ACMPL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
+ x86.ACMPW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
+ x86.ACOMISD: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
+ x86.ACOMISS: gc.ProgInfo{gc.SizeF | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
+ x86.ACVTSD2SL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.ACVTSD2SS: gc.ProgInfo{gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.ACVTSL2SD: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.ACVTSL2SS: gc.ProgInfo{gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.ACVTSS2SD: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.ACVTSS2SL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.ACVTTSD2SL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.ACVTTSS2SL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.ADECB: gc.ProgInfo{gc.SizeB | RightRdwr, 0, 0, 0},
+ x86.ADECL: gc.ProgInfo{gc.SizeL | RightRdwr, 0, 0, 0},
+ x86.ADECW: gc.ProgInfo{gc.SizeW | RightRdwr, 0, 0, 0},
+ x86.ADIVB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.SetCarry, AX, AX, 0},
+ x86.ADIVL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.SetCarry, AX | DX, AX | DX, 0},
+ x86.ADIVW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.SetCarry, AX | DX, AX | DX, 0},
+ x86.ADIVSD: gc.ProgInfo{gc.SizeD | gc.LeftRead | RightRdwr, 0, 0, 0},
+ x86.ADIVSS: gc.ProgInfo{gc.SizeF | gc.LeftRead | RightRdwr, 0, 0, 0},
+ x86.AFLDCW: gc.ProgInfo{gc.SizeW | gc.LeftAddr, 0, 0, 0},
+ x86.AFSTCW: gc.ProgInfo{gc.SizeW | gc.RightAddr, 0, 0, 0},
+ x86.AFSTSW: gc.ProgInfo{gc.SizeW | gc.RightAddr | gc.RightWrite, 0, 0, 0},
+ x86.AFADDD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFADDDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFADDF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFCOMD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | gc.RightRead, 0, 0, 0},
+ x86.AFCOMDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | gc.RightRead, 0, 0, 0},
+ x86.AFCOMDPP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | gc.RightRead, 0, 0, 0},
+ x86.AFCOMF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | gc.RightRead, 0, 0, 0},
+ x86.AFCOMFP: gc.ProgInfo{gc.SizeF | gc.LeftAddr | gc.RightRead, 0, 0, 0},
+ x86.AFUCOMIP: gc.ProgInfo{gc.SizeF | gc.LeftAddr | gc.RightRead, 0, 0, 0},
+ x86.AFCHS: gc.ProgInfo{gc.SizeD | RightRdwr, 0, 0, 0}, // also SizeF
- i386.AFDIVDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFDIVF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFDIVD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFDIVRDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFDIVRF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFDIVRD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFXCHD: gc.ProgInfo{gc.SizeD | LeftRdwr | RightRdwr, 0, 0, 0},
- i386.AFSUBD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFSUBDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFSUBF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFSUBRD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFSUBRDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFSUBRF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFMOVD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | gc.RightWrite, 0, 0, 0},
- i386.AFMOVF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | gc.RightWrite, 0, 0, 0},
- i386.AFMOVL: gc.ProgInfo{gc.SizeL | gc.LeftAddr | gc.RightWrite, 0, 0, 0},
- i386.AFMOVW: gc.ProgInfo{gc.SizeW | gc.LeftAddr | gc.RightWrite, 0, 0, 0},
- i386.AFMOVV: gc.ProgInfo{gc.SizeQ | gc.LeftAddr | gc.RightWrite, 0, 0, 0},
+ x86.AFDIVDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFDIVF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFDIVD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFDIVRDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFDIVRF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFDIVRD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFXCHD: gc.ProgInfo{gc.SizeD | LeftRdwr | RightRdwr, 0, 0, 0},
+ x86.AFSUBD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFSUBDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFSUBF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFSUBRD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFSUBRDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFSUBRF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFMOVD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | gc.RightWrite, 0, 0, 0},
+ x86.AFMOVF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | gc.RightWrite, 0, 0, 0},
+ x86.AFMOVL: gc.ProgInfo{gc.SizeL | gc.LeftAddr | gc.RightWrite, 0, 0, 0},
+ x86.AFMOVW: gc.ProgInfo{gc.SizeW | gc.LeftAddr | gc.RightWrite, 0, 0, 0},
+ x86.AFMOVV: gc.ProgInfo{gc.SizeQ | gc.LeftAddr | gc.RightWrite, 0, 0, 0},
// These instructions are marked as RightAddr
// so that the register optimizer does not try to replace the
// memory references with integer register references.
// But they do not use the previous value at the address, so
// we also mark them RightWrite.
- i386.AFMOVDP: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightWrite | gc.RightAddr, 0, 0, 0},
- i386.AFMOVFP: gc.ProgInfo{gc.SizeF | gc.LeftRead | gc.RightWrite | gc.RightAddr, 0, 0, 0},
- i386.AFMOVLP: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.RightAddr, 0, 0, 0},
- i386.AFMOVWP: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.RightWrite | gc.RightAddr, 0, 0, 0},
- i386.AFMOVVP: gc.ProgInfo{gc.SizeQ | gc.LeftRead | gc.RightWrite | gc.RightAddr, 0, 0, 0},
- i386.AFMULD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFMULDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AFMULF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | RightRdwr, 0, 0, 0},
- i386.AIDIVB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.SetCarry, AX, AX, 0},
- i386.AIDIVL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.SetCarry, AX | DX, AX | DX, 0},
- i386.AIDIVW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.SetCarry, AX | DX, AX | DX, 0},
- i386.AIMULB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.SetCarry, AX, AX, 0},
- i386.AIMULL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.ImulAXDX | gc.SetCarry, 0, 0, 0},
- i386.AIMULW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.ImulAXDX | gc.SetCarry, 0, 0, 0},
- i386.AINCB: gc.ProgInfo{gc.SizeB | RightRdwr, 0, 0, 0},
- i386.AINCL: gc.ProgInfo{gc.SizeL | RightRdwr, 0, 0, 0},
- i386.AINCW: gc.ProgInfo{gc.SizeW | RightRdwr, 0, 0, 0},
- i386.AJCC: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJCS: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJEQ: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJGE: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJGT: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJHI: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJLE: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJLS: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJLT: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJMI: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJNE: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJOC: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJOS: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJPC: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJPL: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
- i386.AJPS: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AFMOVDP: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightWrite | gc.RightAddr, 0, 0, 0},
+ x86.AFMOVFP: gc.ProgInfo{gc.SizeF | gc.LeftRead | gc.RightWrite | gc.RightAddr, 0, 0, 0},
+ x86.AFMOVLP: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.RightAddr, 0, 0, 0},
+ x86.AFMOVWP: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.RightWrite | gc.RightAddr, 0, 0, 0},
+ x86.AFMOVVP: gc.ProgInfo{gc.SizeQ | gc.LeftRead | gc.RightWrite | gc.RightAddr, 0, 0, 0},
+ x86.AFMULD: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFMULDP: gc.ProgInfo{gc.SizeD | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AFMULF: gc.ProgInfo{gc.SizeF | gc.LeftAddr | RightRdwr, 0, 0, 0},
+ x86.AIDIVB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.SetCarry, AX, AX, 0},
+ x86.AIDIVL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.SetCarry, AX | DX, AX | DX, 0},
+ x86.AIDIVW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.SetCarry, AX | DX, AX | DX, 0},
+ x86.AIMULB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.SetCarry, AX, AX, 0},
+ x86.AIMULL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.ImulAXDX | gc.SetCarry, 0, 0, 0},
+ x86.AIMULW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.ImulAXDX | gc.SetCarry, 0, 0, 0},
+ x86.AINCB: gc.ProgInfo{gc.SizeB | RightRdwr, 0, 0, 0},
+ x86.AINCL: gc.ProgInfo{gc.SizeL | RightRdwr, 0, 0, 0},
+ x86.AINCW: gc.ProgInfo{gc.SizeW | RightRdwr, 0, 0, 0},
+ x86.AJCC: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJCS: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJEQ: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJGE: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJGT: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJHI: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJLE: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJLS: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJLT: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJMI: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJNE: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJOC: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJOS: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJPC: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJPL: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
+ x86.AJPS: gc.ProgInfo{gc.Cjmp | gc.UseCarry, 0, 0, 0},
obj.AJMP: gc.ProgInfo{gc.Jump | gc.Break | gc.KillCarry, 0, 0, 0},
- i386.ALEAL: gc.ProgInfo{gc.LeftAddr | gc.RightWrite, 0, 0, 0},
- i386.AMOVBLSX: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.AMOVBLZX: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.AMOVBWSX: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.AMOVBWZX: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.AMOVWLSX: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.AMOVWLZX: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
- i386.AMOVB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.RightWrite | gc.Move, 0, 0, 0},
- i386.AMOVL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Move, 0, 0, 0},
- i386.AMOVW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.RightWrite | gc.Move, 0, 0, 0},
- i386.AMOVSB: gc.ProgInfo{gc.OK, DI | SI, DI | SI, 0},
- i386.AMOVSL: gc.ProgInfo{gc.OK, DI | SI, DI | SI, 0},
- i386.AMOVSW: gc.ProgInfo{gc.OK, DI | SI, DI | SI, 0},
+ x86.ALEAL: gc.ProgInfo{gc.LeftAddr | gc.RightWrite, 0, 0, 0},
+ x86.AMOVBLSX: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.AMOVBLZX: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.AMOVBWSX: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.AMOVBWZX: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.AMOVWLSX: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.AMOVWLZX: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv, 0, 0, 0},
+ x86.AMOVB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.RightWrite | gc.Move, 0, 0, 0},
+ x86.AMOVL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Move, 0, 0, 0},
+ x86.AMOVW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.RightWrite | gc.Move, 0, 0, 0},
+ x86.AMOVSB: gc.ProgInfo{gc.OK, DI | SI, DI | SI, 0},
+ x86.AMOVSL: gc.ProgInfo{gc.OK, DI | SI, DI | SI, 0},
+ x86.AMOVSW: gc.ProgInfo{gc.OK, DI | SI, DI | SI, 0},
obj.ADUFFCOPY: gc.ProgInfo{gc.OK, DI | SI, DI | SI | CX, 0},
- i386.AMOVSD: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Move, 0, 0, 0},
- i386.AMOVSS: gc.ProgInfo{gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Move, 0, 0, 0},
+ x86.AMOVSD: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Move, 0, 0, 0},
+ x86.AMOVSS: gc.ProgInfo{gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Move, 0, 0, 0},
// We use MOVAPD as a faster synonym for MOVSD.
- i386.AMOVAPD: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Move, 0, 0, 0},
- i386.AMULB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.SetCarry, AX, AX, 0},
- i386.AMULL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.SetCarry, AX, AX | DX, 0},
- i386.AMULW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.SetCarry, AX, AX | DX, 0},
- i386.AMULSD: gc.ProgInfo{gc.SizeD | gc.LeftRead | RightRdwr, 0, 0, 0},
- i386.AMULSS: gc.ProgInfo{gc.SizeF | gc.LeftRead | RightRdwr, 0, 0, 0},
- i386.ANEGB: gc.ProgInfo{gc.SizeB | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.ANEGL: gc.ProgInfo{gc.SizeL | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.ANEGW: gc.ProgInfo{gc.SizeW | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.ANOTB: gc.ProgInfo{gc.SizeB | RightRdwr, 0, 0, 0},
- i386.ANOTL: gc.ProgInfo{gc.SizeL | RightRdwr, 0, 0, 0},
- i386.ANOTW: gc.ProgInfo{gc.SizeW | RightRdwr, 0, 0, 0},
- i386.AORB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.AORL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.AORW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.APOPL: gc.ProgInfo{gc.SizeL | gc.RightWrite, 0, 0, 0},
- i386.APUSHL: gc.ProgInfo{gc.SizeL | gc.LeftRead, 0, 0, 0},
- i386.ARCLB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry | gc.UseCarry, 0, 0, 0},
- i386.ARCLL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry | gc.UseCarry, 0, 0, 0},
- i386.ARCLW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry | gc.UseCarry, 0, 0, 0},
- i386.ARCRB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry | gc.UseCarry, 0, 0, 0},
- i386.ARCRL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry | gc.UseCarry, 0, 0, 0},
- i386.ARCRW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry | gc.UseCarry, 0, 0, 0},
- i386.AREP: gc.ProgInfo{gc.OK, CX, CX, 0},
- i386.AREPN: gc.ProgInfo{gc.OK, CX, CX, 0},
+ x86.AMOVAPD: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Move, 0, 0, 0},
+ x86.AMULB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.SetCarry, AX, AX, 0},
+ x86.AMULL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.SetCarry, AX, AX | DX, 0},
+ x86.AMULW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.SetCarry, AX, AX | DX, 0},
+ x86.AMULSD: gc.ProgInfo{gc.SizeD | gc.LeftRead | RightRdwr, 0, 0, 0},
+ x86.AMULSS: gc.ProgInfo{gc.SizeF | gc.LeftRead | RightRdwr, 0, 0, 0},
+ x86.ANEGB: gc.ProgInfo{gc.SizeB | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.ANEGL: gc.ProgInfo{gc.SizeL | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.ANEGW: gc.ProgInfo{gc.SizeW | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.ANOTB: gc.ProgInfo{gc.SizeB | RightRdwr, 0, 0, 0},
+ x86.ANOTL: gc.ProgInfo{gc.SizeL | RightRdwr, 0, 0, 0},
+ x86.ANOTW: gc.ProgInfo{gc.SizeW | RightRdwr, 0, 0, 0},
+ x86.AORB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.AORL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.AORW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.APOPL: gc.ProgInfo{gc.SizeL | gc.RightWrite, 0, 0, 0},
+ x86.APUSHL: gc.ProgInfo{gc.SizeL | gc.LeftRead, 0, 0, 0},
+ x86.ARCLB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry | gc.UseCarry, 0, 0, 0},
+ x86.ARCLL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry | gc.UseCarry, 0, 0, 0},
+ x86.ARCLW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry | gc.UseCarry, 0, 0, 0},
+ x86.ARCRB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry | gc.UseCarry, 0, 0, 0},
+ x86.ARCRL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry | gc.UseCarry, 0, 0, 0},
+ x86.ARCRW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry | gc.UseCarry, 0, 0, 0},
+ x86.AREP: gc.ProgInfo{gc.OK, CX, CX, 0},
+ x86.AREPN: gc.ProgInfo{gc.OK, CX, CX, 0},
obj.ARET: gc.ProgInfo{gc.Break | gc.KillCarry, 0, 0, 0},
- i386.AROLB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.AROLL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.AROLW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ARORB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ARORL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ARORW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ASAHF: gc.ProgInfo{gc.OK, AX, AX, 0},
- i386.ASALB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ASALL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ASALW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ASARB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ASARL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ASARW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ASBBB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.SetCarry | gc.UseCarry, 0, 0, 0},
- i386.ASBBL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry | gc.UseCarry, 0, 0, 0},
- i386.ASBBW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry | gc.UseCarry, 0, 0, 0},
- i386.ASETCC: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETCS: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETEQ: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETGE: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETGT: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETHI: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETLE: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETLS: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETLT: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETMI: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETNE: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETOC: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETOS: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETPC: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETPL: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASETPS: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
- i386.ASHLB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ASHLL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ASHLW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ASHRB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ASHRL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ASHRW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
- i386.ASTOSB: gc.ProgInfo{gc.OK, AX | DI, DI, 0},
- i386.ASTOSL: gc.ProgInfo{gc.OK, AX | DI, DI, 0},
- i386.ASTOSW: gc.ProgInfo{gc.OK, AX | DI, DI, 0},
+ x86.AROLB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.AROLL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.AROLW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ARORB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ARORL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ARORW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ASAHF: gc.ProgInfo{gc.OK, AX, AX, 0},
+ x86.ASALB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ASALL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ASALW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ASARB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ASARL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ASARW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ASBBB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.SetCarry | gc.UseCarry, 0, 0, 0},
+ x86.ASBBL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry | gc.UseCarry, 0, 0, 0},
+ x86.ASBBW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry | gc.UseCarry, 0, 0, 0},
+ x86.ASETCC: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETCS: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETEQ: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETGE: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETGT: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETHI: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETLE: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETLS: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETLT: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETMI: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETNE: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETOC: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETOS: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETPC: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETPL: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASETPS: gc.ProgInfo{gc.SizeB | RightRdwr | gc.UseCarry, 0, 0, 0},
+ x86.ASHLB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ASHLL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ASHLW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ASHRB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ASHRL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ASHRW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.ShiftCX | gc.SetCarry, 0, 0, 0},
+ x86.ASTOSB: gc.ProgInfo{gc.OK, AX | DI, DI, 0},
+ x86.ASTOSL: gc.ProgInfo{gc.OK, AX | DI, DI, 0},
+ x86.ASTOSW: gc.ProgInfo{gc.OK, AX | DI, DI, 0},
obj.ADUFFZERO: gc.ProgInfo{gc.OK, AX | DI, DI, 0},
- i386.ASUBB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.ASUBL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.ASUBW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.ASUBSD: gc.ProgInfo{gc.SizeD | gc.LeftRead | RightRdwr, 0, 0, 0},
- i386.ASUBSS: gc.ProgInfo{gc.SizeF | gc.LeftRead | RightRdwr, 0, 0, 0},
- i386.ATESTB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
- i386.ATESTL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
- i386.ATESTW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
- i386.AUCOMISD: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightRead, 0, 0, 0},
- i386.AUCOMISS: gc.ProgInfo{gc.SizeF | gc.LeftRead | gc.RightRead, 0, 0, 0},
- i386.AXCHGB: gc.ProgInfo{gc.SizeB | LeftRdwr | RightRdwr, 0, 0, 0},
- i386.AXCHGL: gc.ProgInfo{gc.SizeL | LeftRdwr | RightRdwr, 0, 0, 0},
- i386.AXCHGW: gc.ProgInfo{gc.SizeW | LeftRdwr | RightRdwr, 0, 0, 0},
- i386.AXORB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.AXORL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
- i386.AXORW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.ASUBB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.ASUBL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.ASUBW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.ASUBSD: gc.ProgInfo{gc.SizeD | gc.LeftRead | RightRdwr, 0, 0, 0},
+ x86.ASUBSS: gc.ProgInfo{gc.SizeF | gc.LeftRead | RightRdwr, 0, 0, 0},
+ x86.ATESTB: gc.ProgInfo{gc.SizeB | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
+ x86.ATESTL: gc.ProgInfo{gc.SizeL | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
+ x86.ATESTW: gc.ProgInfo{gc.SizeW | gc.LeftRead | gc.RightRead | gc.SetCarry, 0, 0, 0},
+ x86.AUCOMISD: gc.ProgInfo{gc.SizeD | gc.LeftRead | gc.RightRead, 0, 0, 0},
+ x86.AUCOMISS: gc.ProgInfo{gc.SizeF | gc.LeftRead | gc.RightRead, 0, 0, 0},
+ x86.AXCHGB: gc.ProgInfo{gc.SizeB | LeftRdwr | RightRdwr, 0, 0, 0},
+ x86.AXCHGL: gc.ProgInfo{gc.SizeL | LeftRdwr | RightRdwr, 0, 0, 0},
+ x86.AXCHGW: gc.ProgInfo{gc.SizeW | LeftRdwr | RightRdwr, 0, 0, 0},
+ x86.AXORB: gc.ProgInfo{gc.SizeB | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.AXORL: gc.ProgInfo{gc.SizeL | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
+ x86.AXORW: gc.ProgInfo{gc.SizeW | gc.LeftRead | RightRdwr | gc.SetCarry, 0, 0, 0},
}
func proginfo(p *obj.Prog) (info gc.ProgInfo) {
@@ -279,13 +279,13 @@
if p.From.Type == obj.TYPE_MEM && p.From.Name == obj.NAME_NONE {
info.Regindex |= RtoB(int(p.From.Reg))
}
- if p.From.Index != i386.REG_NONE {
+ if p.From.Index != x86.REG_NONE {
info.Regindex |= RtoB(int(p.From.Index))
}
if p.To.Type == obj.TYPE_MEM && p.To.Name == obj.NAME_NONE {
info.Regindex |= RtoB(int(p.To.Reg))
}
- if p.To.Index != i386.REG_NONE {
+ if p.To.Index != x86.REG_NONE {
info.Regindex |= RtoB(int(p.To.Index))
}
diff --git a/src/cmd/8g/reg.go b/src/cmd/8g/reg.go
index 4595ad37..4749855 100644
--- a/src/cmd/8g/reg.go
+++ b/src/cmd/8g/reg.go
@@ -30,7 +30,7 @@
package main
-import i386 "cmd/internal/obj/x86"
+import "cmd/internal/obj/x86"
import "cmd/internal/gc"
const (
@@ -62,28 +62,28 @@
}
func excludedregs() uint64 {
- return RtoB(i386.REG_SP)
+ return RtoB(x86.REG_SP)
}
func doregbits(r int) uint64 {
b := uint64(0)
- if r >= i386.REG_AX && r <= i386.REG_DI {
+ if r >= x86.REG_AX && r <= x86.REG_DI {
b |= RtoB(r)
- } else if r >= i386.REG_AL && r <= i386.REG_BL {
- b |= RtoB(r - i386.REG_AL + i386.REG_AX)
- } else if r >= i386.REG_AH && r <= i386.REG_BH {
- b |= RtoB(r - i386.REG_AH + i386.REG_AX)
- } else if r >= i386.REG_X0 && r <= i386.REG_X0+7 {
+ } else if r >= x86.REG_AL && r <= x86.REG_BL {
+ b |= RtoB(r - x86.REG_AL + x86.REG_AX)
+ } else if r >= x86.REG_AH && r <= x86.REG_BH {
+ b |= RtoB(r - x86.REG_AH + x86.REG_AX)
+ } else if r >= x86.REG_X0 && r <= x86.REG_X0+7 {
b |= FtoB(r)
}
return b
}
func RtoB(r int) uint64 {
- if r < i386.REG_AX || r > i386.REG_DI {
+ if r < x86.REG_AX || r > x86.REG_DI {
return 0
}
- return 1 << uint(r-i386.REG_AX)
+ return 1 << uint(r-x86.REG_AX)
}
func BtoR(b uint64) int {
@@ -91,14 +91,14 @@
if b == 0 {
return 0
}
- return gc.Bitno(b) + i386.REG_AX
+ return gc.Bitno(b) + x86.REG_AX
}
func FtoB(f int) uint64 {
- if f < i386.REG_X0 || f > i386.REG_X7 {
+ if f < x86.REG_X0 || f > x86.REG_X7 {
return 0
}
- return 1 << uint(f-i386.REG_X0+8)
+ return 1 << uint(f-x86.REG_X0+8)
}
func BtoF(b uint64) int {
@@ -106,5 +106,5 @@
if b == 0 {
return 0
}
- return gc.Bitno(b) - 8 + i386.REG_X0
+ return gc.Bitno(b) - 8 + x86.REG_X0
}
diff --git a/src/cmd/dist/buildtool.go b/src/cmd/dist/buildtool.go
index 5ed4461..059391b 100644
--- a/src/cmd/dist/buildtool.go
+++ b/src/cmd/dist/buildtool.go
@@ -131,8 +131,7 @@
continue
}
if strings.HasPrefix(line, `import "`) || strings.HasPrefix(line, `import . "`) ||
- inBlock && (strings.HasPrefix(line, "\t\"") || strings.HasPrefix(line, "\t. \"")) ||
- strings.Contains(line, `i386 "cmd/internal/obj/x86"`) {
+ inBlock && (strings.HasPrefix(line, "\t\"") || strings.HasPrefix(line, "\t. \"")) {
lines[i] = strings.Replace(line, `"cmd/`, `"bootstrap/`, -1)
}
}
diff --git a/src/cmd/old8a/lex.go b/src/cmd/old8a/lex.go
index 43db25b..73b633b 100644
--- a/src/cmd/old8a/lex.go
+++ b/src/cmd/old8a/lex.go
@@ -35,7 +35,7 @@
import (
"cmd/internal/asm"
"cmd/internal/obj"
- i386 "cmd/internal/obj/x86"
+ "cmd/internal/obj/x86"
)
var (
@@ -60,7 +60,7 @@
asm.Thechar = '8'
asm.Thestring = "386"
- asm.Thelinkarch = &i386.Link386
+ asm.Thelinkarch = &x86.Link386
asm.Main()
}
@@ -90,620 +90,620 @@
{"SB", LSB, obj.NAME_EXTERN},
{"FP", LFP, obj.NAME_PARAM},
{"PC", LPC, obj.TYPE_BRANCH},
- {"AL", LBREG, i386.REG_AL},
- {"CL", LBREG, i386.REG_CL},
- {"DL", LBREG, i386.REG_DL},
- {"BL", LBREG, i386.REG_BL},
- {"AH", LBREG, i386.REG_AH},
- {"CH", LBREG, i386.REG_CH},
- {"DH", LBREG, i386.REG_DH},
- {"BH", LBREG, i386.REG_BH},
- {"AX", LLREG, i386.REG_AX},
- {"CX", LLREG, i386.REG_CX},
- {"DX", LLREG, i386.REG_DX},
- {"BX", LLREG, i386.REG_BX},
+ {"AL", LBREG, x86.REG_AL},
+ {"CL", LBREG, x86.REG_CL},
+ {"DL", LBREG, x86.REG_DL},
+ {"BL", LBREG, x86.REG_BL},
+ {"AH", LBREG, x86.REG_AH},
+ {"CH", LBREG, x86.REG_CH},
+ {"DH", LBREG, x86.REG_DH},
+ {"BH", LBREG, x86.REG_BH},
+ {"AX", LLREG, x86.REG_AX},
+ {"CX", LLREG, x86.REG_CX},
+ {"DX", LLREG, x86.REG_DX},
+ {"BX", LLREG, x86.REG_BX},
/* "SP", LLREG, REG_SP, */
- {"BP", LLREG, i386.REG_BP},
- {"SI", LLREG, i386.REG_SI},
- {"DI", LLREG, i386.REG_DI},
- {"F0", LFREG, i386.REG_F0 + 0},
- {"F1", LFREG, i386.REG_F0 + 1},
- {"F2", LFREG, i386.REG_F0 + 2},
- {"F3", LFREG, i386.REG_F0 + 3},
- {"F4", LFREG, i386.REG_F0 + 4},
- {"F5", LFREG, i386.REG_F0 + 5},
- {"F6", LFREG, i386.REG_F0 + 6},
- {"F7", LFREG, i386.REG_F0 + 7},
- {"X0", LXREG, i386.REG_X0 + 0},
- {"X1", LXREG, i386.REG_X0 + 1},
- {"X2", LXREG, i386.REG_X0 + 2},
- {"X3", LXREG, i386.REG_X0 + 3},
- {"X4", LXREG, i386.REG_X0 + 4},
- {"X5", LXREG, i386.REG_X0 + 5},
- {"X6", LXREG, i386.REG_X0 + 6},
- {"X7", LXREG, i386.REG_X0 + 7},
- {"CS", LSREG, i386.REG_CS},
- {"SS", LSREG, i386.REG_SS},
- {"DS", LSREG, i386.REG_DS},
- {"ES", LSREG, i386.REG_ES},
- {"FS", LSREG, i386.REG_FS},
- {"GS", LSREG, i386.REG_GS},
- {"TLS", LSREG, i386.REG_TLS},
- {"GDTR", LBREG, i386.REG_GDTR},
- {"IDTR", LBREG, i386.REG_IDTR},
- {"LDTR", LBREG, i386.REG_LDTR},
- {"MSW", LBREG, i386.REG_MSW},
- {"TASK", LBREG, i386.REG_TASK},
- {"CR0", LBREG, i386.REG_CR + 0},
- {"CR1", LBREG, i386.REG_CR + 1},
- {"CR2", LBREG, i386.REG_CR + 2},
- {"CR3", LBREG, i386.REG_CR + 3},
- {"CR4", LBREG, i386.REG_CR + 4},
- {"CR5", LBREG, i386.REG_CR + 5},
- {"CR6", LBREG, i386.REG_CR + 6},
- {"CR7", LBREG, i386.REG_CR + 7},
- {"DR0", LBREG, i386.REG_DR + 0},
- {"DR1", LBREG, i386.REG_DR + 1},
- {"DR2", LBREG, i386.REG_DR + 2},
- {"DR3", LBREG, i386.REG_DR + 3},
- {"DR4", LBREG, i386.REG_DR + 4},
- {"DR5", LBREG, i386.REG_DR + 5},
- {"DR6", LBREG, i386.REG_DR + 6},
- {"DR7", LBREG, i386.REG_DR + 7},
- {"TR0", LBREG, i386.REG_TR + 0},
- {"TR1", LBREG, i386.REG_TR + 1},
- {"TR2", LBREG, i386.REG_TR + 2},
- {"TR3", LBREG, i386.REG_TR + 3},
- {"TR4", LBREG, i386.REG_TR + 4},
- {"TR5", LBREG, i386.REG_TR + 5},
- {"TR6", LBREG, i386.REG_TR + 6},
- {"TR7", LBREG, i386.REG_TR + 7},
- {"AAA", LTYPE0, i386.AAAA},
- {"AAD", LTYPE0, i386.AAAD},
- {"AAM", LTYPE0, i386.AAAM},
- {"AAS", LTYPE0, i386.AAAS},
- {"ADCB", LTYPE3, i386.AADCB},
- {"ADCL", LTYPE3, i386.AADCL},
- {"ADCW", LTYPE3, i386.AADCW},
- {"ADDB", LTYPE3, i386.AADDB},
- {"ADDL", LTYPE3, i386.AADDL},
- {"ADDW", LTYPE3, i386.AADDW},
- {"ADJSP", LTYPE2, i386.AADJSP},
- {"ANDB", LTYPE3, i386.AANDB},
- {"ANDL", LTYPE3, i386.AANDL},
- {"ANDW", LTYPE3, i386.AANDW},
- {"ARPL", LTYPE3, i386.AARPL},
- {"BOUNDL", LTYPE3, i386.ABOUNDL},
- {"BOUNDW", LTYPE3, i386.ABOUNDW},
- {"BSFL", LTYPE3, i386.ABSFL},
- {"BSFW", LTYPE3, i386.ABSFW},
- {"BSRL", LTYPE3, i386.ABSRL},
- {"BSRW", LTYPE3, i386.ABSRW},
- {"BSWAPL", LTYPE1, i386.ABSWAPL},
- {"BTCL", LTYPE3, i386.ABTCL},
- {"BTCW", LTYPE3, i386.ABTCW},
- {"BTL", LTYPE3, i386.ABTL},
- {"BTRL", LTYPE3, i386.ABTRL},
- {"BTRW", LTYPE3, i386.ABTRW},
- {"BTSL", LTYPE3, i386.ABTSL},
- {"BTSW", LTYPE3, i386.ABTSW},
- {"BTW", LTYPE3, i386.ABTW},
- {"BYTE", LTYPE2, i386.ABYTE},
+ {"BP", LLREG, x86.REG_BP},
+ {"SI", LLREG, x86.REG_SI},
+ {"DI", LLREG, x86.REG_DI},
+ {"F0", LFREG, x86.REG_F0 + 0},
+ {"F1", LFREG, x86.REG_F0 + 1},
+ {"F2", LFREG, x86.REG_F0 + 2},
+ {"F3", LFREG, x86.REG_F0 + 3},
+ {"F4", LFREG, x86.REG_F0 + 4},
+ {"F5", LFREG, x86.REG_F0 + 5},
+ {"F6", LFREG, x86.REG_F0 + 6},
+ {"F7", LFREG, x86.REG_F0 + 7},
+ {"X0", LXREG, x86.REG_X0 + 0},
+ {"X1", LXREG, x86.REG_X0 + 1},
+ {"X2", LXREG, x86.REG_X0 + 2},
+ {"X3", LXREG, x86.REG_X0 + 3},
+ {"X4", LXREG, x86.REG_X0 + 4},
+ {"X5", LXREG, x86.REG_X0 + 5},
+ {"X6", LXREG, x86.REG_X0 + 6},
+ {"X7", LXREG, x86.REG_X0 + 7},
+ {"CS", LSREG, x86.REG_CS},
+ {"SS", LSREG, x86.REG_SS},
+ {"DS", LSREG, x86.REG_DS},
+ {"ES", LSREG, x86.REG_ES},
+ {"FS", LSREG, x86.REG_FS},
+ {"GS", LSREG, x86.REG_GS},
+ {"TLS", LSREG, x86.REG_TLS},
+ {"GDTR", LBREG, x86.REG_GDTR},
+ {"IDTR", LBREG, x86.REG_IDTR},
+ {"LDTR", LBREG, x86.REG_LDTR},
+ {"MSW", LBREG, x86.REG_MSW},
+ {"TASK", LBREG, x86.REG_TASK},
+ {"CR0", LBREG, x86.REG_CR + 0},
+ {"CR1", LBREG, x86.REG_CR + 1},
+ {"CR2", LBREG, x86.REG_CR + 2},
+ {"CR3", LBREG, x86.REG_CR + 3},
+ {"CR4", LBREG, x86.REG_CR + 4},
+ {"CR5", LBREG, x86.REG_CR + 5},
+ {"CR6", LBREG, x86.REG_CR + 6},
+ {"CR7", LBREG, x86.REG_CR + 7},
+ {"DR0", LBREG, x86.REG_DR + 0},
+ {"DR1", LBREG, x86.REG_DR + 1},
+ {"DR2", LBREG, x86.REG_DR + 2},
+ {"DR3", LBREG, x86.REG_DR + 3},
+ {"DR4", LBREG, x86.REG_DR + 4},
+ {"DR5", LBREG, x86.REG_DR + 5},
+ {"DR6", LBREG, x86.REG_DR + 6},
+ {"DR7", LBREG, x86.REG_DR + 7},
+ {"TR0", LBREG, x86.REG_TR + 0},
+ {"TR1", LBREG, x86.REG_TR + 1},
+ {"TR2", LBREG, x86.REG_TR + 2},
+ {"TR3", LBREG, x86.REG_TR + 3},
+ {"TR4", LBREG, x86.REG_TR + 4},
+ {"TR5", LBREG, x86.REG_TR + 5},
+ {"TR6", LBREG, x86.REG_TR + 6},
+ {"TR7", LBREG, x86.REG_TR + 7},
+ {"AAA", LTYPE0, x86.AAAA},
+ {"AAD", LTYPE0, x86.AAAD},
+ {"AAM", LTYPE0, x86.AAAM},
+ {"AAS", LTYPE0, x86.AAAS},
+ {"ADCB", LTYPE3, x86.AADCB},
+ {"ADCL", LTYPE3, x86.AADCL},
+ {"ADCW", LTYPE3, x86.AADCW},
+ {"ADDB", LTYPE3, x86.AADDB},
+ {"ADDL", LTYPE3, x86.AADDL},
+ {"ADDW", LTYPE3, x86.AADDW},
+ {"ADJSP", LTYPE2, x86.AADJSP},
+ {"ANDB", LTYPE3, x86.AANDB},
+ {"ANDL", LTYPE3, x86.AANDL},
+ {"ANDW", LTYPE3, x86.AANDW},
+ {"ARPL", LTYPE3, x86.AARPL},
+ {"BOUNDL", LTYPE3, x86.ABOUNDL},
+ {"BOUNDW", LTYPE3, x86.ABOUNDW},
+ {"BSFL", LTYPE3, x86.ABSFL},
+ {"BSFW", LTYPE3, x86.ABSFW},
+ {"BSRL", LTYPE3, x86.ABSRL},
+ {"BSRW", LTYPE3, x86.ABSRW},
+ {"BSWAPL", LTYPE1, x86.ABSWAPL},
+ {"BTCL", LTYPE3, x86.ABTCL},
+ {"BTCW", LTYPE3, x86.ABTCW},
+ {"BTL", LTYPE3, x86.ABTL},
+ {"BTRL", LTYPE3, x86.ABTRL},
+ {"BTRW", LTYPE3, x86.ABTRW},
+ {"BTSL", LTYPE3, x86.ABTSL},
+ {"BTSW", LTYPE3, x86.ABTSW},
+ {"BTW", LTYPE3, x86.ABTW},
+ {"BYTE", LTYPE2, x86.ABYTE},
{"CALL", LTYPEC, obj.ACALL},
- {"CLC", LTYPE0, i386.ACLC},
- {"CLD", LTYPE0, i386.ACLD},
- {"CLI", LTYPE0, i386.ACLI},
- {"CLTS", LTYPE0, i386.ACLTS},
- {"CMC", LTYPE0, i386.ACMC},
- {"CMPB", LTYPE4, i386.ACMPB},
- {"CMPL", LTYPE4, i386.ACMPL},
- {"CMPW", LTYPE4, i386.ACMPW},
- {"CMPSB", LTYPE0, i386.ACMPSB},
- {"CMPSL", LTYPE0, i386.ACMPSL},
- {"CMPSW", LTYPE0, i386.ACMPSW},
- {"CMPXCHG8B", LTYPE1, i386.ACMPXCHG8B},
- {"CMPXCHGB", LTYPE3, i386.ACMPXCHGB},
- {"CMPXCHGL", LTYPE3, i386.ACMPXCHGL},
- {"CMPXCHGW", LTYPE3, i386.ACMPXCHGW},
- {"CPUID", LTYPE0, i386.ACPUID},
- {"DAA", LTYPE0, i386.ADAA},
- {"DAS", LTYPE0, i386.ADAS},
+ {"CLC", LTYPE0, x86.ACLC},
+ {"CLD", LTYPE0, x86.ACLD},
+ {"CLI", LTYPE0, x86.ACLI},
+ {"CLTS", LTYPE0, x86.ACLTS},
+ {"CMC", LTYPE0, x86.ACMC},
+ {"CMPB", LTYPE4, x86.ACMPB},
+ {"CMPL", LTYPE4, x86.ACMPL},
+ {"CMPW", LTYPE4, x86.ACMPW},
+ {"CMPSB", LTYPE0, x86.ACMPSB},
+ {"CMPSL", LTYPE0, x86.ACMPSL},
+ {"CMPSW", LTYPE0, x86.ACMPSW},
+ {"CMPXCHG8B", LTYPE1, x86.ACMPXCHG8B},
+ {"CMPXCHGB", LTYPE3, x86.ACMPXCHGB},
+ {"CMPXCHGL", LTYPE3, x86.ACMPXCHGL},
+ {"CMPXCHGW", LTYPE3, x86.ACMPXCHGW},
+ {"CPUID", LTYPE0, x86.ACPUID},
+ {"DAA", LTYPE0, x86.ADAA},
+ {"DAS", LTYPE0, x86.ADAS},
{"DATA", LTYPED, obj.ADATA},
- {"DECB", LTYPE1, i386.ADECB},
- {"DECL", LTYPE1, i386.ADECL},
- {"DECW", LTYPE1, i386.ADECW},
- {"DIVB", LTYPE2, i386.ADIVB},
- {"DIVL", LTYPE2, i386.ADIVL},
- {"DIVW", LTYPE2, i386.ADIVW},
+ {"DECB", LTYPE1, x86.ADECB},
+ {"DECL", LTYPE1, x86.ADECL},
+ {"DECW", LTYPE1, x86.ADECW},
+ {"DIVB", LTYPE2, x86.ADIVB},
+ {"DIVL", LTYPE2, x86.ADIVL},
+ {"DIVW", LTYPE2, x86.ADIVW},
{"END", LTYPE0, obj.AEND},
- {"ENTER", LTYPE2, i386.AENTER},
+ {"ENTER", LTYPE2, x86.AENTER},
{"GLOBL", LTYPEG, obj.AGLOBL},
- {"HLT", LTYPE0, i386.AHLT},
- {"IDIVB", LTYPE2, i386.AIDIVB},
- {"IDIVL", LTYPE2, i386.AIDIVL},
- {"IDIVW", LTYPE2, i386.AIDIVW},
- {"IMULB", LTYPE2, i386.AIMULB},
- {"IMULL", LTYPEI, i386.AIMULL},
- {"IMULW", LTYPEI, i386.AIMULW},
- {"INB", LTYPE0, i386.AINB},
- {"INL", LTYPE0, i386.AINL},
- {"INW", LTYPE0, i386.AINW},
- {"INCB", LTYPE1, i386.AINCB},
- {"INCL", LTYPE1, i386.AINCL},
- {"INCW", LTYPE1, i386.AINCW},
- {"INSB", LTYPE0, i386.AINSB},
- {"INSL", LTYPE0, i386.AINSL},
- {"INSW", LTYPE0, i386.AINSW},
- {"INT", LTYPE2, i386.AINT},
- {"INTO", LTYPE0, i386.AINTO},
- {"IRETL", LTYPE0, i386.AIRETL},
- {"IRETW", LTYPE0, i386.AIRETW},
- {"JOS", LTYPER, i386.AJOS}, /* overflow set (OF = 1) */
- {"JO", LTYPER, i386.AJOS}, /* alternate */
- {"JOC", LTYPER, i386.AJOC}, /* overflow clear (OF = 0) */
- {"JNO", LTYPER, i386.AJOC}, /* alternate */
- {"JCS", LTYPER, i386.AJCS}, /* carry set (CF = 1) */
- {"JB", LTYPER, i386.AJCS}, /* alternate */
- {"JC", LTYPER, i386.AJCS}, /* alternate */
- {"JNAE", LTYPER, i386.AJCS}, /* alternate */
- {"JLO", LTYPER, i386.AJCS}, /* alternate */
- {"JCC", LTYPER, i386.AJCC}, /* carry clear (CF = 0) */
- {"JAE", LTYPER, i386.AJCC}, /* alternate */
- {"JNB", LTYPER, i386.AJCC}, /* alternate */
- {"JNC", LTYPER, i386.AJCC}, /* alternate */
- {"JHS", LTYPER, i386.AJCC}, /* alternate */
- {"JEQ", LTYPER, i386.AJEQ}, /* equal (ZF = 1) */
- {"JE", LTYPER, i386.AJEQ}, /* alternate */
- {"JZ", LTYPER, i386.AJEQ}, /* alternate */
- {"JNE", LTYPER, i386.AJNE}, /* not equal (ZF = 0) */
- {"JNZ", LTYPER, i386.AJNE}, /* alternate */
- {"JLS", LTYPER, i386.AJLS}, /* lower or same (unsigned) (CF = 1 || ZF = 1) */
- {"JBE", LTYPER, i386.AJLS}, /* alternate */
- {"JNA", LTYPER, i386.AJLS}, /* alternate */
- {"JHI", LTYPER, i386.AJHI}, /* higher (unsigned) (CF = 0 && ZF = 0) */
- {"JA", LTYPER, i386.AJHI}, /* alternate */
- {"JNBE", LTYPER, i386.AJHI}, /* alternate */
- {"JMI", LTYPER, i386.AJMI}, /* negative (minus) (SF = 1) */
- {"JS", LTYPER, i386.AJMI}, /* alternate */
- {"JPL", LTYPER, i386.AJPL}, /* non-negative (plus) (SF = 0) */
- {"JNS", LTYPER, i386.AJPL}, /* alternate */
- {"JPS", LTYPER, i386.AJPS}, /* parity set (PF = 1) */
- {"JP", LTYPER, i386.AJPS}, /* alternate */
- {"JPE", LTYPER, i386.AJPS}, /* alternate */
- {"JPC", LTYPER, i386.AJPC}, /* parity clear (PF = 0) */
- {"JNP", LTYPER, i386.AJPC}, /* alternate */
- {"JPO", LTYPER, i386.AJPC}, /* alternate */
- {"JLT", LTYPER, i386.AJLT}, /* less than (signed) (SF != OF) */
- {"JL", LTYPER, i386.AJLT}, /* alternate */
- {"JNGE", LTYPER, i386.AJLT}, /* alternate */
- {"JGE", LTYPER, i386.AJGE}, /* greater than or equal (signed) (SF = OF) */
- {"JNL", LTYPER, i386.AJGE}, /* alternate */
- {"JLE", LTYPER, i386.AJLE}, /* less than or equal (signed) (ZF = 1 || SF != OF) */
- {"JNG", LTYPER, i386.AJLE}, /* alternate */
- {"JGT", LTYPER, i386.AJGT}, /* greater than (signed) (ZF = 0 && SF = OF) */
- {"JG", LTYPER, i386.AJGT}, /* alternate */
- {"JNLE", LTYPER, i386.AJGT}, /* alternate */
- {"JCXZL", LTYPER, i386.AJCXZL},
- {"JCXZW", LTYPER, i386.AJCXZW},
+ {"HLT", LTYPE0, x86.AHLT},
+ {"IDIVB", LTYPE2, x86.AIDIVB},
+ {"IDIVL", LTYPE2, x86.AIDIVL},
+ {"IDIVW", LTYPE2, x86.AIDIVW},
+ {"IMULB", LTYPE2, x86.AIMULB},
+ {"IMULL", LTYPEI, x86.AIMULL},
+ {"IMULW", LTYPEI, x86.AIMULW},
+ {"INB", LTYPE0, x86.AINB},
+ {"INL", LTYPE0, x86.AINL},
+ {"INW", LTYPE0, x86.AINW},
+ {"INCB", LTYPE1, x86.AINCB},
+ {"INCL", LTYPE1, x86.AINCL},
+ {"INCW", LTYPE1, x86.AINCW},
+ {"INSB", LTYPE0, x86.AINSB},
+ {"INSL", LTYPE0, x86.AINSL},
+ {"INSW", LTYPE0, x86.AINSW},
+ {"INT", LTYPE2, x86.AINT},
+ {"INTO", LTYPE0, x86.AINTO},
+ {"IRETL", LTYPE0, x86.AIRETL},
+ {"IRETW", LTYPE0, x86.AIRETW},
+ {"JOS", LTYPER, x86.AJOS}, /* overflow set (OF = 1) */
+ {"JO", LTYPER, x86.AJOS}, /* alternate */
+ {"JOC", LTYPER, x86.AJOC}, /* overflow clear (OF = 0) */
+ {"JNO", LTYPER, x86.AJOC}, /* alternate */
+ {"JCS", LTYPER, x86.AJCS}, /* carry set (CF = 1) */
+ {"JB", LTYPER, x86.AJCS}, /* alternate */
+ {"JC", LTYPER, x86.AJCS}, /* alternate */
+ {"JNAE", LTYPER, x86.AJCS}, /* alternate */
+ {"JLO", LTYPER, x86.AJCS}, /* alternate */
+ {"JCC", LTYPER, x86.AJCC}, /* carry clear (CF = 0) */
+ {"JAE", LTYPER, x86.AJCC}, /* alternate */
+ {"JNB", LTYPER, x86.AJCC}, /* alternate */
+ {"JNC", LTYPER, x86.AJCC}, /* alternate */
+ {"JHS", LTYPER, x86.AJCC}, /* alternate */
+ {"JEQ", LTYPER, x86.AJEQ}, /* equal (ZF = 1) */
+ {"JE", LTYPER, x86.AJEQ}, /* alternate */
+ {"JZ", LTYPER, x86.AJEQ}, /* alternate */
+ {"JNE", LTYPER, x86.AJNE}, /* not equal (ZF = 0) */
+ {"JNZ", LTYPER, x86.AJNE}, /* alternate */
+ {"JLS", LTYPER, x86.AJLS}, /* lower or same (unsigned) (CF = 1 || ZF = 1) */
+ {"JBE", LTYPER, x86.AJLS}, /* alternate */
+ {"JNA", LTYPER, x86.AJLS}, /* alternate */
+ {"JHI", LTYPER, x86.AJHI}, /* higher (unsigned) (CF = 0 && ZF = 0) */
+ {"JA", LTYPER, x86.AJHI}, /* alternate */
+ {"JNBE", LTYPER, x86.AJHI}, /* alternate */
+ {"JMI", LTYPER, x86.AJMI}, /* negative (minus) (SF = 1) */
+ {"JS", LTYPER, x86.AJMI}, /* alternate */
+ {"JPL", LTYPER, x86.AJPL}, /* non-negative (plus) (SF = 0) */
+ {"JNS", LTYPER, x86.AJPL}, /* alternate */
+ {"JPS", LTYPER, x86.AJPS}, /* parity set (PF = 1) */
+ {"JP", LTYPER, x86.AJPS}, /* alternate */
+ {"JPE", LTYPER, x86.AJPS}, /* alternate */
+ {"JPC", LTYPER, x86.AJPC}, /* parity clear (PF = 0) */
+ {"JNP", LTYPER, x86.AJPC}, /* alternate */
+ {"JPO", LTYPER, x86.AJPC}, /* alternate */
+ {"JLT", LTYPER, x86.AJLT}, /* less than (signed) (SF != OF) */
+ {"JL", LTYPER, x86.AJLT}, /* alternate */
+ {"JNGE", LTYPER, x86.AJLT}, /* alternate */
+ {"JGE", LTYPER, x86.AJGE}, /* greater than or equal (signed) (SF = OF) */
+ {"JNL", LTYPER, x86.AJGE}, /* alternate */
+ {"JLE", LTYPER, x86.AJLE}, /* less than or equal (signed) (ZF = 1 || SF != OF) */
+ {"JNG", LTYPER, x86.AJLE}, /* alternate */
+ {"JGT", LTYPER, x86.AJGT}, /* greater than (signed) (ZF = 0 && SF = OF) */
+ {"JG", LTYPER, x86.AJGT}, /* alternate */
+ {"JNLE", LTYPER, x86.AJGT}, /* alternate */
+ {"JCXZL", LTYPER, x86.AJCXZL},
+ {"JCXZW", LTYPER, x86.AJCXZW},
{"JMP", LTYPEC, obj.AJMP},
- {"LAHF", LTYPE0, i386.ALAHF},
- {"LARL", LTYPE3, i386.ALARL},
- {"LARW", LTYPE3, i386.ALARW},
- {"LEAL", LTYPE3, i386.ALEAL},
- {"LEAW", LTYPE3, i386.ALEAW},
- {"LEAVEL", LTYPE0, i386.ALEAVEL},
- {"LEAVEW", LTYPE0, i386.ALEAVEW},
- {"LOCK", LTYPE0, i386.ALOCK},
- {"LODSB", LTYPE0, i386.ALODSB},
- {"LODSL", LTYPE0, i386.ALODSL},
- {"LODSW", LTYPE0, i386.ALODSW},
- {"LONG", LTYPE2, i386.ALONG},
- {"LOOP", LTYPER, i386.ALOOP},
- {"LOOPEQ", LTYPER, i386.ALOOPEQ},
- {"LOOPNE", LTYPER, i386.ALOOPNE},
- {"LSLL", LTYPE3, i386.ALSLL},
- {"LSLW", LTYPE3, i386.ALSLW},
- {"MOVB", LTYPE3, i386.AMOVB},
- {"MOVL", LTYPEM, i386.AMOVL},
- {"MOVW", LTYPEM, i386.AMOVW},
- {"MOVQ", LTYPEM, i386.AMOVQ},
- {"MOVBLSX", LTYPE3, i386.AMOVBLSX},
- {"MOVBLZX", LTYPE3, i386.AMOVBLZX},
- {"MOVBWSX", LTYPE3, i386.AMOVBWSX},
- {"MOVBWZX", LTYPE3, i386.AMOVBWZX},
- {"MOVWLSX", LTYPE3, i386.AMOVWLSX},
- {"MOVWLZX", LTYPE3, i386.AMOVWLZX},
- {"MOVSB", LTYPE0, i386.AMOVSB},
- {"MOVSL", LTYPE0, i386.AMOVSL},
- {"MOVSW", LTYPE0, i386.AMOVSW},
- {"MULB", LTYPE2, i386.AMULB},
- {"MULL", LTYPE2, i386.AMULL},
- {"MULW", LTYPE2, i386.AMULW},
- {"NEGB", LTYPE1, i386.ANEGB},
- {"NEGL", LTYPE1, i386.ANEGL},
- {"NEGW", LTYPE1, i386.ANEGW},
+ {"LAHF", LTYPE0, x86.ALAHF},
+ {"LARL", LTYPE3, x86.ALARL},
+ {"LARW", LTYPE3, x86.ALARW},
+ {"LEAL", LTYPE3, x86.ALEAL},
+ {"LEAW", LTYPE3, x86.ALEAW},
+ {"LEAVEL", LTYPE0, x86.ALEAVEL},
+ {"LEAVEW", LTYPE0, x86.ALEAVEW},
+ {"LOCK", LTYPE0, x86.ALOCK},
+ {"LODSB", LTYPE0, x86.ALODSB},
+ {"LODSL", LTYPE0, x86.ALODSL},
+ {"LODSW", LTYPE0, x86.ALODSW},
+ {"LONG", LTYPE2, x86.ALONG},
+ {"LOOP", LTYPER, x86.ALOOP},
+ {"LOOPEQ", LTYPER, x86.ALOOPEQ},
+ {"LOOPNE", LTYPER, x86.ALOOPNE},
+ {"LSLL", LTYPE3, x86.ALSLL},
+ {"LSLW", LTYPE3, x86.ALSLW},
+ {"MOVB", LTYPE3, x86.AMOVB},
+ {"MOVL", LTYPEM, x86.AMOVL},
+ {"MOVW", LTYPEM, x86.AMOVW},
+ {"MOVQ", LTYPEM, x86.AMOVQ},
+ {"MOVBLSX", LTYPE3, x86.AMOVBLSX},
+ {"MOVBLZX", LTYPE3, x86.AMOVBLZX},
+ {"MOVBWSX", LTYPE3, x86.AMOVBWSX},
+ {"MOVBWZX", LTYPE3, x86.AMOVBWZX},
+ {"MOVWLSX", LTYPE3, x86.AMOVWLSX},
+ {"MOVWLZX", LTYPE3, x86.AMOVWLZX},
+ {"MOVSB", LTYPE0, x86.AMOVSB},
+ {"MOVSL", LTYPE0, x86.AMOVSL},
+ {"MOVSW", LTYPE0, x86.AMOVSW},
+ {"MULB", LTYPE2, x86.AMULB},
+ {"MULL", LTYPE2, x86.AMULL},
+ {"MULW", LTYPE2, x86.AMULW},
+ {"NEGB", LTYPE1, x86.ANEGB},
+ {"NEGL", LTYPE1, x86.ANEGL},
+ {"NEGW", LTYPE1, x86.ANEGW},
{"NOP", LTYPEN, obj.ANOP},
- {"NOTB", LTYPE1, i386.ANOTB},
- {"NOTL", LTYPE1, i386.ANOTL},
- {"NOTW", LTYPE1, i386.ANOTW},
- {"ORB", LTYPE3, i386.AORB},
- {"ORL", LTYPE3, i386.AORL},
- {"ORW", LTYPE3, i386.AORW},
- {"OUTB", LTYPE0, i386.AOUTB},
- {"OUTL", LTYPE0, i386.AOUTL},
- {"OUTW", LTYPE0, i386.AOUTW},
- {"OUTSB", LTYPE0, i386.AOUTSB},
- {"OUTSL", LTYPE0, i386.AOUTSL},
- {"OUTSW", LTYPE0, i386.AOUTSW},
- {"PAUSE", LTYPEN, i386.APAUSE},
- {"PINSRD", LTYPEX, i386.APINSRD},
- {"POPAL", LTYPE0, i386.APOPAL},
- {"POPAW", LTYPE0, i386.APOPAW},
- {"POPFL", LTYPE0, i386.APOPFL},
- {"POPFW", LTYPE0, i386.APOPFW},
- {"POPL", LTYPE1, i386.APOPL},
- {"POPW", LTYPE1, i386.APOPW},
- {"PUSHAL", LTYPE0, i386.APUSHAL},
- {"PUSHAW", LTYPE0, i386.APUSHAW},
- {"PUSHFL", LTYPE0, i386.APUSHFL},
- {"PUSHFW", LTYPE0, i386.APUSHFW},
- {"PUSHL", LTYPE2, i386.APUSHL},
- {"PUSHW", LTYPE2, i386.APUSHW},
- {"RCLB", LTYPE3, i386.ARCLB},
- {"RCLL", LTYPE3, i386.ARCLL},
- {"RCLW", LTYPE3, i386.ARCLW},
- {"RCRB", LTYPE3, i386.ARCRB},
- {"RCRL", LTYPE3, i386.ARCRL},
- {"RCRW", LTYPE3, i386.ARCRW},
- {"RDTSC", LTYPE0, i386.ARDTSC},
- {"REP", LTYPE0, i386.AREP},
- {"REPN", LTYPE0, i386.AREPN},
+ {"NOTB", LTYPE1, x86.ANOTB},
+ {"NOTL", LTYPE1, x86.ANOTL},
+ {"NOTW", LTYPE1, x86.ANOTW},
+ {"ORB", LTYPE3, x86.AORB},
+ {"ORL", LTYPE3, x86.AORL},
+ {"ORW", LTYPE3, x86.AORW},
+ {"OUTB", LTYPE0, x86.AOUTB},
+ {"OUTL", LTYPE0, x86.AOUTL},
+ {"OUTW", LTYPE0, x86.AOUTW},
+ {"OUTSB", LTYPE0, x86.AOUTSB},
+ {"OUTSL", LTYPE0, x86.AOUTSL},
+ {"OUTSW", LTYPE0, x86.AOUTSW},
+ {"PAUSE", LTYPEN, x86.APAUSE},
+ {"PINSRD", LTYPEX, x86.APINSRD},
+ {"POPAL", LTYPE0, x86.APOPAL},
+ {"POPAW", LTYPE0, x86.APOPAW},
+ {"POPFL", LTYPE0, x86.APOPFL},
+ {"POPFW", LTYPE0, x86.APOPFW},
+ {"POPL", LTYPE1, x86.APOPL},
+ {"POPW", LTYPE1, x86.APOPW},
+ {"PUSHAL", LTYPE0, x86.APUSHAL},
+ {"PUSHAW", LTYPE0, x86.APUSHAW},
+ {"PUSHFL", LTYPE0, x86.APUSHFL},
+ {"PUSHFW", LTYPE0, x86.APUSHFW},
+ {"PUSHL", LTYPE2, x86.APUSHL},
+ {"PUSHW", LTYPE2, x86.APUSHW},
+ {"RCLB", LTYPE3, x86.ARCLB},
+ {"RCLL", LTYPE3, x86.ARCLL},
+ {"RCLW", LTYPE3, x86.ARCLW},
+ {"RCRB", LTYPE3, x86.ARCRB},
+ {"RCRL", LTYPE3, x86.ARCRL},
+ {"RCRW", LTYPE3, x86.ARCRW},
+ {"RDTSC", LTYPE0, x86.ARDTSC},
+ {"REP", LTYPE0, x86.AREP},
+ {"REPN", LTYPE0, x86.AREPN},
{"RET", LTYPE0, obj.ARET},
- {"ROLB", LTYPE3, i386.AROLB},
- {"ROLL", LTYPE3, i386.AROLL},
- {"ROLW", LTYPE3, i386.AROLW},
- {"RORB", LTYPE3, i386.ARORB},
- {"RORL", LTYPE3, i386.ARORL},
- {"RORW", LTYPE3, i386.ARORW},
- {"SAHF", LTYPE0, i386.ASAHF},
- {"SALB", LTYPE3, i386.ASALB},
- {"SALL", LTYPE3, i386.ASALL},
- {"SALW", LTYPE3, i386.ASALW},
- {"SARB", LTYPE3, i386.ASARB},
- {"SARL", LTYPE3, i386.ASARL},
- {"SARW", LTYPE3, i386.ASARW},
- {"SBBB", LTYPE3, i386.ASBBB},
- {"SBBL", LTYPE3, i386.ASBBL},
- {"SBBW", LTYPE3, i386.ASBBW},
- {"SCASB", LTYPE0, i386.ASCASB},
- {"SCASL", LTYPE0, i386.ASCASL},
- {"SCASW", LTYPE0, i386.ASCASW},
- {"SETCC", LTYPE1, i386.ASETCC}, /* see JCC etc above for condition codes */
- {"SETCS", LTYPE1, i386.ASETCS},
- {"SETEQ", LTYPE1, i386.ASETEQ},
- {"SETGE", LTYPE1, i386.ASETGE},
- {"SETGT", LTYPE1, i386.ASETGT},
- {"SETHI", LTYPE1, i386.ASETHI},
- {"SETLE", LTYPE1, i386.ASETLE},
- {"SETLS", LTYPE1, i386.ASETLS},
- {"SETLT", LTYPE1, i386.ASETLT},
- {"SETMI", LTYPE1, i386.ASETMI},
- {"SETNE", LTYPE1, i386.ASETNE},
- {"SETOC", LTYPE1, i386.ASETOC},
- {"SETOS", LTYPE1, i386.ASETOS},
- {"SETPC", LTYPE1, i386.ASETPC},
- {"SETPL", LTYPE1, i386.ASETPL},
- {"SETPS", LTYPE1, i386.ASETPS},
- {"CDQ", LTYPE0, i386.ACDQ},
- {"CWD", LTYPE0, i386.ACWD},
- {"SHLB", LTYPE3, i386.ASHLB},
- {"SHLL", LTYPES, i386.ASHLL},
- {"SHLW", LTYPES, i386.ASHLW},
- {"SHRB", LTYPE3, i386.ASHRB},
- {"SHRL", LTYPES, i386.ASHRL},
- {"SHRW", LTYPES, i386.ASHRW},
- {"STC", LTYPE0, i386.ASTC},
- {"STD", LTYPE0, i386.ASTD},
- {"STI", LTYPE0, i386.ASTI},
- {"STOSB", LTYPE0, i386.ASTOSB},
- {"STOSL", LTYPE0, i386.ASTOSL},
- {"STOSW", LTYPE0, i386.ASTOSW},
- {"SUBB", LTYPE3, i386.ASUBB},
- {"SUBL", LTYPE3, i386.ASUBL},
- {"SUBW", LTYPE3, i386.ASUBW},
- {"SYSCALL", LTYPE0, i386.ASYSCALL},
- {"TESTB", LTYPE3, i386.ATESTB},
- {"TESTL", LTYPE3, i386.ATESTL},
- {"TESTW", LTYPE3, i386.ATESTW},
+ {"ROLB", LTYPE3, x86.AROLB},
+ {"ROLL", LTYPE3, x86.AROLL},
+ {"ROLW", LTYPE3, x86.AROLW},
+ {"RORB", LTYPE3, x86.ARORB},
+ {"RORL", LTYPE3, x86.ARORL},
+ {"RORW", LTYPE3, x86.ARORW},
+ {"SAHF", LTYPE0, x86.ASAHF},
+ {"SALB", LTYPE3, x86.ASALB},
+ {"SALL", LTYPE3, x86.ASALL},
+ {"SALW", LTYPE3, x86.ASALW},
+ {"SARB", LTYPE3, x86.ASARB},
+ {"SARL", LTYPE3, x86.ASARL},
+ {"SARW", LTYPE3, x86.ASARW},
+ {"SBBB", LTYPE3, x86.ASBBB},
+ {"SBBL", LTYPE3, x86.ASBBL},
+ {"SBBW", LTYPE3, x86.ASBBW},
+ {"SCASB", LTYPE0, x86.ASCASB},
+ {"SCASL", LTYPE0, x86.ASCASL},
+ {"SCASW", LTYPE0, x86.ASCASW},
+ {"SETCC", LTYPE1, x86.ASETCC}, /* see JCC etc above for condition codes */
+ {"SETCS", LTYPE1, x86.ASETCS},
+ {"SETEQ", LTYPE1, x86.ASETEQ},
+ {"SETGE", LTYPE1, x86.ASETGE},
+ {"SETGT", LTYPE1, x86.ASETGT},
+ {"SETHI", LTYPE1, x86.ASETHI},
+ {"SETLE", LTYPE1, x86.ASETLE},
+ {"SETLS", LTYPE1, x86.ASETLS},
+ {"SETLT", LTYPE1, x86.ASETLT},
+ {"SETMI", LTYPE1, x86.ASETMI},
+ {"SETNE", LTYPE1, x86.ASETNE},
+ {"SETOC", LTYPE1, x86.ASETOC},
+ {"SETOS", LTYPE1, x86.ASETOS},
+ {"SETPC", LTYPE1, x86.ASETPC},
+ {"SETPL", LTYPE1, x86.ASETPL},
+ {"SETPS", LTYPE1, x86.ASETPS},
+ {"CDQ", LTYPE0, x86.ACDQ},
+ {"CWD", LTYPE0, x86.ACWD},
+ {"SHLB", LTYPE3, x86.ASHLB},
+ {"SHLL", LTYPES, x86.ASHLL},
+ {"SHLW", LTYPES, x86.ASHLW},
+ {"SHRB", LTYPE3, x86.ASHRB},
+ {"SHRL", LTYPES, x86.ASHRL},
+ {"SHRW", LTYPES, x86.ASHRW},
+ {"STC", LTYPE0, x86.ASTC},
+ {"STD", LTYPE0, x86.ASTD},
+ {"STI", LTYPE0, x86.ASTI},
+ {"STOSB", LTYPE0, x86.ASTOSB},
+ {"STOSL", LTYPE0, x86.ASTOSL},
+ {"STOSW", LTYPE0, x86.ASTOSW},
+ {"SUBB", LTYPE3, x86.ASUBB},
+ {"SUBL", LTYPE3, x86.ASUBL},
+ {"SUBW", LTYPE3, x86.ASUBW},
+ {"SYSCALL", LTYPE0, x86.ASYSCALL},
+ {"TESTB", LTYPE3, x86.ATESTB},
+ {"TESTL", LTYPE3, x86.ATESTL},
+ {"TESTW", LTYPE3, x86.ATESTW},
{"TEXT", LTYPET, obj.ATEXT},
- {"VERR", LTYPE2, i386.AVERR},
- {"VERW", LTYPE2, i386.AVERW},
- {"WAIT", LTYPE0, i386.AWAIT},
- {"WORD", LTYPE2, i386.AWORD},
- {"XADDB", LTYPE3, i386.AXADDB},
- {"XADDL", LTYPE3, i386.AXADDL},
- {"XADDW", LTYPE3, i386.AXADDW},
- {"XCHGB", LTYPE3, i386.AXCHGB},
- {"XCHGL", LTYPE3, i386.AXCHGL},
- {"XCHGW", LTYPE3, i386.AXCHGW},
- {"XLAT", LTYPE2, i386.AXLAT},
- {"XORB", LTYPE3, i386.AXORB},
- {"XORL", LTYPE3, i386.AXORL},
- {"XORW", LTYPE3, i386.AXORW},
- {"CMOVLCC", LTYPE3, i386.ACMOVLCC},
- {"CMOVLCS", LTYPE3, i386.ACMOVLCS},
- {"CMOVLEQ", LTYPE3, i386.ACMOVLEQ},
- {"CMOVLGE", LTYPE3, i386.ACMOVLGE},
- {"CMOVLGT", LTYPE3, i386.ACMOVLGT},
- {"CMOVLHI", LTYPE3, i386.ACMOVLHI},
- {"CMOVLLE", LTYPE3, i386.ACMOVLLE},
- {"CMOVLLS", LTYPE3, i386.ACMOVLLS},
- {"CMOVLLT", LTYPE3, i386.ACMOVLLT},
- {"CMOVLMI", LTYPE3, i386.ACMOVLMI},
- {"CMOVLNE", LTYPE3, i386.ACMOVLNE},
- {"CMOVLOC", LTYPE3, i386.ACMOVLOC},
- {"CMOVLOS", LTYPE3, i386.ACMOVLOS},
- {"CMOVLPC", LTYPE3, i386.ACMOVLPC},
- {"CMOVLPL", LTYPE3, i386.ACMOVLPL},
- {"CMOVLPS", LTYPE3, i386.ACMOVLPS},
- {"CMOVWCC", LTYPE3, i386.ACMOVWCC},
- {"CMOVWCS", LTYPE3, i386.ACMOVWCS},
- {"CMOVWEQ", LTYPE3, i386.ACMOVWEQ},
- {"CMOVWGE", LTYPE3, i386.ACMOVWGE},
- {"CMOVWGT", LTYPE3, i386.ACMOVWGT},
- {"CMOVWHI", LTYPE3, i386.ACMOVWHI},
- {"CMOVWLE", LTYPE3, i386.ACMOVWLE},
- {"CMOVWLS", LTYPE3, i386.ACMOVWLS},
- {"CMOVWLT", LTYPE3, i386.ACMOVWLT},
- {"CMOVWMI", LTYPE3, i386.ACMOVWMI},
- {"CMOVWNE", LTYPE3, i386.ACMOVWNE},
- {"CMOVWOC", LTYPE3, i386.ACMOVWOC},
- {"CMOVWOS", LTYPE3, i386.ACMOVWOS},
- {"CMOVWPC", LTYPE3, i386.ACMOVWPC},
- {"CMOVWPL", LTYPE3, i386.ACMOVWPL},
- {"CMOVWPS", LTYPE3, i386.ACMOVWPS},
- {"FMOVB", LTYPE3, i386.AFMOVB},
- {"FMOVBP", LTYPE3, i386.AFMOVBP},
- {"FMOVD", LTYPE3, i386.AFMOVD},
- {"FMOVDP", LTYPE3, i386.AFMOVDP},
- {"FMOVF", LTYPE3, i386.AFMOVF},
- {"FMOVFP", LTYPE3, i386.AFMOVFP},
- {"FMOVL", LTYPE3, i386.AFMOVL},
- {"FMOVLP", LTYPE3, i386.AFMOVLP},
- {"FMOVV", LTYPE3, i386.AFMOVV},
- {"FMOVVP", LTYPE3, i386.AFMOVVP},
- {"FMOVW", LTYPE3, i386.AFMOVW},
- {"FMOVWP", LTYPE3, i386.AFMOVWP},
- {"FMOVX", LTYPE3, i386.AFMOVX},
- {"FMOVXP", LTYPE3, i386.AFMOVXP},
- {"FCMOVCC", LTYPE3, i386.AFCMOVCC},
- {"FCMOVCS", LTYPE3, i386.AFCMOVCS},
- {"FCMOVEQ", LTYPE3, i386.AFCMOVEQ},
- {"FCMOVHI", LTYPE3, i386.AFCMOVHI},
- {"FCMOVLS", LTYPE3, i386.AFCMOVLS},
- {"FCMOVNE", LTYPE3, i386.AFCMOVNE},
- {"FCMOVNU", LTYPE3, i386.AFCMOVNU},
- {"FCMOVUN", LTYPE3, i386.AFCMOVUN},
- {"FCOMB", LTYPE3, i386.AFCOMB},
- {"FCOMBP", LTYPE3, i386.AFCOMBP},
- {"FCOMD", LTYPE3, i386.AFCOMD},
- {"FCOMDP", LTYPE3, i386.AFCOMDP},
- {"FCOMDPP", LTYPE3, i386.AFCOMDPP},
- {"FCOMF", LTYPE3, i386.AFCOMF},
- {"FCOMFP", LTYPE3, i386.AFCOMFP},
- {"FCOMI", LTYPE3, i386.AFCOMI},
- {"FCOMIP", LTYPE3, i386.AFCOMIP},
- {"FCOML", LTYPE3, i386.AFCOML},
- {"FCOMLP", LTYPE3, i386.AFCOMLP},
- {"FCOMW", LTYPE3, i386.AFCOMW},
- {"FCOMWP", LTYPE3, i386.AFCOMWP},
- {"FUCOM", LTYPE3, i386.AFUCOM},
- {"FUCOMI", LTYPE3, i386.AFUCOMI},
- {"FUCOMIP", LTYPE3, i386.AFUCOMIP},
- {"FUCOMP", LTYPE3, i386.AFUCOMP},
- {"FUCOMPP", LTYPE3, i386.AFUCOMPP},
- {"FADDW", LTYPE3, i386.AFADDW},
- {"FADDL", LTYPE3, i386.AFADDL},
- {"FADDF", LTYPE3, i386.AFADDF},
- {"FADDD", LTYPE3, i386.AFADDD},
- {"FADDDP", LTYPE3, i386.AFADDDP},
- {"FSUBDP", LTYPE3, i386.AFSUBDP},
- {"FSUBW", LTYPE3, i386.AFSUBW},
- {"FSUBL", LTYPE3, i386.AFSUBL},
- {"FSUBF", LTYPE3, i386.AFSUBF},
- {"FSUBD", LTYPE3, i386.AFSUBD},
- {"FSUBRDP", LTYPE3, i386.AFSUBRDP},
- {"FSUBRW", LTYPE3, i386.AFSUBRW},
- {"FSUBRL", LTYPE3, i386.AFSUBRL},
- {"FSUBRF", LTYPE3, i386.AFSUBRF},
- {"FSUBRD", LTYPE3, i386.AFSUBRD},
- {"FMULDP", LTYPE3, i386.AFMULDP},
- {"FMULW", LTYPE3, i386.AFMULW},
- {"FMULL", LTYPE3, i386.AFMULL},
- {"FMULF", LTYPE3, i386.AFMULF},
- {"FMULD", LTYPE3, i386.AFMULD},
- {"FDIVDP", LTYPE3, i386.AFDIVDP},
- {"FDIVW", LTYPE3, i386.AFDIVW},
- {"FDIVL", LTYPE3, i386.AFDIVL},
- {"FDIVF", LTYPE3, i386.AFDIVF},
- {"FDIVD", LTYPE3, i386.AFDIVD},
- {"FDIVRDP", LTYPE3, i386.AFDIVRDP},
- {"FDIVRW", LTYPE3, i386.AFDIVRW},
- {"FDIVRL", LTYPE3, i386.AFDIVRL},
- {"FDIVRF", LTYPE3, i386.AFDIVRF},
- {"FDIVRD", LTYPE3, i386.AFDIVRD},
- {"FXCHD", LTYPE3, i386.AFXCHD},
- {"FFREE", LTYPE1, i386.AFFREE},
- {"FLDCW", LTYPE2, i386.AFLDCW},
- {"FLDENV", LTYPE1, i386.AFLDENV},
- {"FRSTOR", LTYPE2, i386.AFRSTOR},
- {"FSAVE", LTYPE1, i386.AFSAVE},
- {"FSTCW", LTYPE1, i386.AFSTCW},
- {"FSTENV", LTYPE1, i386.AFSTENV},
- {"FSTSW", LTYPE1, i386.AFSTSW},
- {"F2XM1", LTYPE0, i386.AF2XM1},
- {"FABS", LTYPE0, i386.AFABS},
- {"FCHS", LTYPE0, i386.AFCHS},
- {"FCLEX", LTYPE0, i386.AFCLEX},
- {"FCOS", LTYPE0, i386.AFCOS},
- {"FDECSTP", LTYPE0, i386.AFDECSTP},
- {"FINCSTP", LTYPE0, i386.AFINCSTP},
- {"FINIT", LTYPE0, i386.AFINIT},
- {"FLD1", LTYPE0, i386.AFLD1},
- {"FLDL2E", LTYPE0, i386.AFLDL2E},
- {"FLDL2T", LTYPE0, i386.AFLDL2T},
- {"FLDLG2", LTYPE0, i386.AFLDLG2},
- {"FLDLN2", LTYPE0, i386.AFLDLN2},
- {"FLDPI", LTYPE0, i386.AFLDPI},
- {"FLDZ", LTYPE0, i386.AFLDZ},
- {"FNOP", LTYPE0, i386.AFNOP},
- {"FPATAN", LTYPE0, i386.AFPATAN},
- {"FPREM", LTYPE0, i386.AFPREM},
- {"FPREM1", LTYPE0, i386.AFPREM1},
- {"FPTAN", LTYPE0, i386.AFPTAN},
- {"FRNDINT", LTYPE0, i386.AFRNDINT},
- {"FSCALE", LTYPE0, i386.AFSCALE},
- {"FSIN", LTYPE0, i386.AFSIN},
- {"FSINCOS", LTYPE0, i386.AFSINCOS},
- {"FSQRT", LTYPE0, i386.AFSQRT},
- {"FTST", LTYPE0, i386.AFTST},
- {"FXAM", LTYPE0, i386.AFXAM},
- {"FXTRACT", LTYPE0, i386.AFXTRACT},
- {"FYL2X", LTYPE0, i386.AFYL2X},
- {"FYL2XP1", LTYPE0, i386.AFYL2XP1},
- {"LFENCE", LTYPE0, i386.ALFENCE},
- {"MFENCE", LTYPE0, i386.AMFENCE},
- {"SFENCE", LTYPE0, i386.ASFENCE},
- {"EMMS", LTYPE0, i386.AEMMS},
- {"PREFETCHT0", LTYPE2, i386.APREFETCHT0},
- {"PREFETCHT1", LTYPE2, i386.APREFETCHT1},
- {"PREFETCHT2", LTYPE2, i386.APREFETCHT2},
- {"PREFETCHNTA", LTYPE2, i386.APREFETCHNTA},
+ {"VERR", LTYPE2, x86.AVERR},
+ {"VERW", LTYPE2, x86.AVERW},
+ {"WAIT", LTYPE0, x86.AWAIT},
+ {"WORD", LTYPE2, x86.AWORD},
+ {"XADDB", LTYPE3, x86.AXADDB},
+ {"XADDL", LTYPE3, x86.AXADDL},
+ {"XADDW", LTYPE3, x86.AXADDW},
+ {"XCHGB", LTYPE3, x86.AXCHGB},
+ {"XCHGL", LTYPE3, x86.AXCHGL},
+ {"XCHGW", LTYPE3, x86.AXCHGW},
+ {"XLAT", LTYPE2, x86.AXLAT},
+ {"XORB", LTYPE3, x86.AXORB},
+ {"XORL", LTYPE3, x86.AXORL},
+ {"XORW", LTYPE3, x86.AXORW},
+ {"CMOVLCC", LTYPE3, x86.ACMOVLCC},
+ {"CMOVLCS", LTYPE3, x86.ACMOVLCS},
+ {"CMOVLEQ", LTYPE3, x86.ACMOVLEQ},
+ {"CMOVLGE", LTYPE3, x86.ACMOVLGE},
+ {"CMOVLGT", LTYPE3, x86.ACMOVLGT},
+ {"CMOVLHI", LTYPE3, x86.ACMOVLHI},
+ {"CMOVLLE", LTYPE3, x86.ACMOVLLE},
+ {"CMOVLLS", LTYPE3, x86.ACMOVLLS},
+ {"CMOVLLT", LTYPE3, x86.ACMOVLLT},
+ {"CMOVLMI", LTYPE3, x86.ACMOVLMI},
+ {"CMOVLNE", LTYPE3, x86.ACMOVLNE},
+ {"CMOVLOC", LTYPE3, x86.ACMOVLOC},
+ {"CMOVLOS", LTYPE3, x86.ACMOVLOS},
+ {"CMOVLPC", LTYPE3, x86.ACMOVLPC},
+ {"CMOVLPL", LTYPE3, x86.ACMOVLPL},
+ {"CMOVLPS", LTYPE3, x86.ACMOVLPS},
+ {"CMOVWCC", LTYPE3, x86.ACMOVWCC},
+ {"CMOVWCS", LTYPE3, x86.ACMOVWCS},
+ {"CMOVWEQ", LTYPE3, x86.ACMOVWEQ},
+ {"CMOVWGE", LTYPE3, x86.ACMOVWGE},
+ {"CMOVWGT", LTYPE3, x86.ACMOVWGT},
+ {"CMOVWHI", LTYPE3, x86.ACMOVWHI},
+ {"CMOVWLE", LTYPE3, x86.ACMOVWLE},
+ {"CMOVWLS", LTYPE3, x86.ACMOVWLS},
+ {"CMOVWLT", LTYPE3, x86.ACMOVWLT},
+ {"CMOVWMI", LTYPE3, x86.ACMOVWMI},
+ {"CMOVWNE", LTYPE3, x86.ACMOVWNE},
+ {"CMOVWOC", LTYPE3, x86.ACMOVWOC},
+ {"CMOVWOS", LTYPE3, x86.ACMOVWOS},
+ {"CMOVWPC", LTYPE3, x86.ACMOVWPC},
+ {"CMOVWPL", LTYPE3, x86.ACMOVWPL},
+ {"CMOVWPS", LTYPE3, x86.ACMOVWPS},
+ {"FMOVB", LTYPE3, x86.AFMOVB},
+ {"FMOVBP", LTYPE3, x86.AFMOVBP},
+ {"FMOVD", LTYPE3, x86.AFMOVD},
+ {"FMOVDP", LTYPE3, x86.AFMOVDP},
+ {"FMOVF", LTYPE3, x86.AFMOVF},
+ {"FMOVFP", LTYPE3, x86.AFMOVFP},
+ {"FMOVL", LTYPE3, x86.AFMOVL},
+ {"FMOVLP", LTYPE3, x86.AFMOVLP},
+ {"FMOVV", LTYPE3, x86.AFMOVV},
+ {"FMOVVP", LTYPE3, x86.AFMOVVP},
+ {"FMOVW", LTYPE3, x86.AFMOVW},
+ {"FMOVWP", LTYPE3, x86.AFMOVWP},
+ {"FMOVX", LTYPE3, x86.AFMOVX},
+ {"FMOVXP", LTYPE3, x86.AFMOVXP},
+ {"FCMOVCC", LTYPE3, x86.AFCMOVCC},
+ {"FCMOVCS", LTYPE3, x86.AFCMOVCS},
+ {"FCMOVEQ", LTYPE3, x86.AFCMOVEQ},
+ {"FCMOVHI", LTYPE3, x86.AFCMOVHI},
+ {"FCMOVLS", LTYPE3, x86.AFCMOVLS},
+ {"FCMOVNE", LTYPE3, x86.AFCMOVNE},
+ {"FCMOVNU", LTYPE3, x86.AFCMOVNU},
+ {"FCMOVUN", LTYPE3, x86.AFCMOVUN},
+ {"FCOMB", LTYPE3, x86.AFCOMB},
+ {"FCOMBP", LTYPE3, x86.AFCOMBP},
+ {"FCOMD", LTYPE3, x86.AFCOMD},
+ {"FCOMDP", LTYPE3, x86.AFCOMDP},
+ {"FCOMDPP", LTYPE3, x86.AFCOMDPP},
+ {"FCOMF", LTYPE3, x86.AFCOMF},
+ {"FCOMFP", LTYPE3, x86.AFCOMFP},
+ {"FCOMI", LTYPE3, x86.AFCOMI},
+ {"FCOMIP", LTYPE3, x86.AFCOMIP},
+ {"FCOML", LTYPE3, x86.AFCOML},
+ {"FCOMLP", LTYPE3, x86.AFCOMLP},
+ {"FCOMW", LTYPE3, x86.AFCOMW},
+ {"FCOMWP", LTYPE3, x86.AFCOMWP},
+ {"FUCOM", LTYPE3, x86.AFUCOM},
+ {"FUCOMI", LTYPE3, x86.AFUCOMI},
+ {"FUCOMIP", LTYPE3, x86.AFUCOMIP},
+ {"FUCOMP", LTYPE3, x86.AFUCOMP},
+ {"FUCOMPP", LTYPE3, x86.AFUCOMPP},
+ {"FADDW", LTYPE3, x86.AFADDW},
+ {"FADDL", LTYPE3, x86.AFADDL},
+ {"FADDF", LTYPE3, x86.AFADDF},
+ {"FADDD", LTYPE3, x86.AFADDD},
+ {"FADDDP", LTYPE3, x86.AFADDDP},
+ {"FSUBDP", LTYPE3, x86.AFSUBDP},
+ {"FSUBW", LTYPE3, x86.AFSUBW},
+ {"FSUBL", LTYPE3, x86.AFSUBL},
+ {"FSUBF", LTYPE3, x86.AFSUBF},
+ {"FSUBD", LTYPE3, x86.AFSUBD},
+ {"FSUBRDP", LTYPE3, x86.AFSUBRDP},
+ {"FSUBRW", LTYPE3, x86.AFSUBRW},
+ {"FSUBRL", LTYPE3, x86.AFSUBRL},
+ {"FSUBRF", LTYPE3, x86.AFSUBRF},
+ {"FSUBRD", LTYPE3, x86.AFSUBRD},
+ {"FMULDP", LTYPE3, x86.AFMULDP},
+ {"FMULW", LTYPE3, x86.AFMULW},
+ {"FMULL", LTYPE3, x86.AFMULL},
+ {"FMULF", LTYPE3, x86.AFMULF},
+ {"FMULD", LTYPE3, x86.AFMULD},
+ {"FDIVDP", LTYPE3, x86.AFDIVDP},
+ {"FDIVW", LTYPE3, x86.AFDIVW},
+ {"FDIVL", LTYPE3, x86.AFDIVL},
+ {"FDIVF", LTYPE3, x86.AFDIVF},
+ {"FDIVD", LTYPE3, x86.AFDIVD},
+ {"FDIVRDP", LTYPE3, x86.AFDIVRDP},
+ {"FDIVRW", LTYPE3, x86.AFDIVRW},
+ {"FDIVRL", LTYPE3, x86.AFDIVRL},
+ {"FDIVRF", LTYPE3, x86.AFDIVRF},
+ {"FDIVRD", LTYPE3, x86.AFDIVRD},
+ {"FXCHD", LTYPE3, x86.AFXCHD},
+ {"FFREE", LTYPE1, x86.AFFREE},
+ {"FLDCW", LTYPE2, x86.AFLDCW},
+ {"FLDENV", LTYPE1, x86.AFLDENV},
+ {"FRSTOR", LTYPE2, x86.AFRSTOR},
+ {"FSAVE", LTYPE1, x86.AFSAVE},
+ {"FSTCW", LTYPE1, x86.AFSTCW},
+ {"FSTENV", LTYPE1, x86.AFSTENV},
+ {"FSTSW", LTYPE1, x86.AFSTSW},
+ {"F2XM1", LTYPE0, x86.AF2XM1},
+ {"FABS", LTYPE0, x86.AFABS},
+ {"FCHS", LTYPE0, x86.AFCHS},
+ {"FCLEX", LTYPE0, x86.AFCLEX},
+ {"FCOS", LTYPE0, x86.AFCOS},
+ {"FDECSTP", LTYPE0, x86.AFDECSTP},
+ {"FINCSTP", LTYPE0, x86.AFINCSTP},
+ {"FINIT", LTYPE0, x86.AFINIT},
+ {"FLD1", LTYPE0, x86.AFLD1},
+ {"FLDL2E", LTYPE0, x86.AFLDL2E},
+ {"FLDL2T", LTYPE0, x86.AFLDL2T},
+ {"FLDLG2", LTYPE0, x86.AFLDLG2},
+ {"FLDLN2", LTYPE0, x86.AFLDLN2},
+ {"FLDPI", LTYPE0, x86.AFLDPI},
+ {"FLDZ", LTYPE0, x86.AFLDZ},
+ {"FNOP", LTYPE0, x86.AFNOP},
+ {"FPATAN", LTYPE0, x86.AFPATAN},
+ {"FPREM", LTYPE0, x86.AFPREM},
+ {"FPREM1", LTYPE0, x86.AFPREM1},
+ {"FPTAN", LTYPE0, x86.AFPTAN},
+ {"FRNDINT", LTYPE0, x86.AFRNDINT},
+ {"FSCALE", LTYPE0, x86.AFSCALE},
+ {"FSIN", LTYPE0, x86.AFSIN},
+ {"FSINCOS", LTYPE0, x86.AFSINCOS},
+ {"FSQRT", LTYPE0, x86.AFSQRT},
+ {"FTST", LTYPE0, x86.AFTST},
+ {"FXAM", LTYPE0, x86.AFXAM},
+ {"FXTRACT", LTYPE0, x86.AFXTRACT},
+ {"FYL2X", LTYPE0, x86.AFYL2X},
+ {"FYL2XP1", LTYPE0, x86.AFYL2XP1},
+ {"LFENCE", LTYPE0, x86.ALFENCE},
+ {"MFENCE", LTYPE0, x86.AMFENCE},
+ {"SFENCE", LTYPE0, x86.ASFENCE},
+ {"EMMS", LTYPE0, x86.AEMMS},
+ {"PREFETCHT0", LTYPE2, x86.APREFETCHT0},
+ {"PREFETCHT1", LTYPE2, x86.APREFETCHT1},
+ {"PREFETCHT2", LTYPE2, x86.APREFETCHT2},
+ {"PREFETCHNTA", LTYPE2, x86.APREFETCHNTA},
{"UNDEF", LTYPE0, obj.AUNDEF},
- {"ADDPD", LTYPE3, i386.AADDPD},
- {"ADDPS", LTYPE3, i386.AADDPS},
- {"ADDSD", LTYPE3, i386.AADDSD},
- {"ADDSS", LTYPE3, i386.AADDSS},
- {"AESENC", LTYPE3, i386.AAESENC},
- {"ANDNPD", LTYPE3, i386.AANDNPD},
- {"ANDNPS", LTYPE3, i386.AANDNPS},
- {"ANDPD", LTYPE3, i386.AANDPD},
- {"ANDPS", LTYPE3, i386.AANDPS},
- {"CMPPD", LTYPEXC, i386.ACMPPD},
- {"CMPPS", LTYPEXC, i386.ACMPPS},
- {"CMPSD", LTYPEXC, i386.ACMPSD},
- {"CMPSS", LTYPEXC, i386.ACMPSS},
- {"COMISD", LTYPE3, i386.ACOMISD},
- {"COMISS", LTYPE3, i386.ACOMISS},
- {"CVTPL2PD", LTYPE3, i386.ACVTPL2PD},
- {"CVTPL2PS", LTYPE3, i386.ACVTPL2PS},
- {"CVTPD2PL", LTYPE3, i386.ACVTPD2PL},
- {"CVTPD2PS", LTYPE3, i386.ACVTPD2PS},
- {"CVTPS2PL", LTYPE3, i386.ACVTPS2PL},
- {"CVTPS2PD", LTYPE3, i386.ACVTPS2PD},
- {"CVTSD2SL", LTYPE3, i386.ACVTSD2SL},
- {"CVTSD2SS", LTYPE3, i386.ACVTSD2SS},
- {"CVTSL2SD", LTYPE3, i386.ACVTSL2SD},
- {"CVTSL2SS", LTYPE3, i386.ACVTSL2SS},
- {"CVTSS2SD", LTYPE3, i386.ACVTSS2SD},
- {"CVTSS2SL", LTYPE3, i386.ACVTSS2SL},
- {"CVTTPD2PL", LTYPE3, i386.ACVTTPD2PL},
- {"CVTTPS2PL", LTYPE3, i386.ACVTTPS2PL},
- {"CVTTSD2SL", LTYPE3, i386.ACVTTSD2SL},
- {"CVTTSS2SL", LTYPE3, i386.ACVTTSS2SL},
- {"DIVPD", LTYPE3, i386.ADIVPD},
- {"DIVPS", LTYPE3, i386.ADIVPS},
- {"DIVSD", LTYPE3, i386.ADIVSD},
- {"DIVSS", LTYPE3, i386.ADIVSS},
- {"MASKMOVOU", LTYPE3, i386.AMASKMOVOU},
- {"MASKMOVDQU", LTYPE3, i386.AMASKMOVOU}, /* syn */
- {"MAXPD", LTYPE3, i386.AMAXPD},
- {"MAXPS", LTYPE3, i386.AMAXPS},
- {"MAXSD", LTYPE3, i386.AMAXSD},
- {"MAXSS", LTYPE3, i386.AMAXSS},
- {"MINPD", LTYPE3, i386.AMINPD},
- {"MINPS", LTYPE3, i386.AMINPS},
- {"MINSD", LTYPE3, i386.AMINSD},
- {"MINSS", LTYPE3, i386.AMINSS},
- {"MOVAPD", LTYPE3, i386.AMOVAPD},
- {"MOVAPS", LTYPE3, i386.AMOVAPS},
- {"MOVO", LTYPE3, i386.AMOVO},
- {"MOVOA", LTYPE3, i386.AMOVO}, /* syn */
- {"MOVOU", LTYPE3, i386.AMOVOU},
- {"MOVHLPS", LTYPE3, i386.AMOVHLPS},
- {"MOVHPD", LTYPE3, i386.AMOVHPD},
- {"MOVHPS", LTYPE3, i386.AMOVHPS},
- {"MOVLHPS", LTYPE3, i386.AMOVLHPS},
- {"MOVLPD", LTYPE3, i386.AMOVLPD},
- {"MOVLPS", LTYPE3, i386.AMOVLPS},
- {"MOVMSKPD", LTYPE3, i386.AMOVMSKPD},
- {"MOVMSKPS", LTYPE3, i386.AMOVMSKPS},
- {"MOVNTO", LTYPE3, i386.AMOVNTO},
- {"MOVNTDQ", LTYPE3, i386.AMOVNTO}, /* syn */
- {"MOVNTPD", LTYPE3, i386.AMOVNTPD},
- {"MOVNTPS", LTYPE3, i386.AMOVNTPS},
- {"MOVSD", LTYPE3, i386.AMOVSD},
- {"MOVSS", LTYPE3, i386.AMOVSS},
- {"MOVUPD", LTYPE3, i386.AMOVUPD},
- {"MOVUPS", LTYPE3, i386.AMOVUPS},
- {"MULPD", LTYPE3, i386.AMULPD},
- {"MULPS", LTYPE3, i386.AMULPS},
- {"MULSD", LTYPE3, i386.AMULSD},
- {"MULSS", LTYPE3, i386.AMULSS},
- {"ORPD", LTYPE3, i386.AORPD},
- {"ORPS", LTYPE3, i386.AORPS},
- {"PADDQ", LTYPE3, i386.APADDQ},
- {"PAND", LTYPE3, i386.APAND},
- {"PCMPEQB", LTYPE3, i386.APCMPEQB},
- {"PMAXSW", LTYPE3, i386.APMAXSW},
- {"PMAXUB", LTYPE3, i386.APMAXUB},
- {"PMINSW", LTYPE3, i386.APMINSW},
- {"PMINUB", LTYPE3, i386.APMINUB},
- {"PMOVMSKB", LTYPE3, i386.APMOVMSKB},
- {"PSADBW", LTYPE3, i386.APSADBW},
- {"PSHUFB", LTYPE3, i386.APSHUFB},
- {"PSHUFHW", LTYPEX, i386.APSHUFHW},
- {"PSHUFL", LTYPEX, i386.APSHUFL},
- {"PSHUFLW", LTYPEX, i386.APSHUFLW},
- {"PSUBB", LTYPE3, i386.APSUBB},
- {"PSUBL", LTYPE3, i386.APSUBL},
- {"PSUBQ", LTYPE3, i386.APSUBQ},
- {"PSUBSB", LTYPE3, i386.APSUBSB},
- {"PSUBSW", LTYPE3, i386.APSUBSW},
- {"PSUBUSB", LTYPE3, i386.APSUBUSB},
- {"PSUBUSW", LTYPE3, i386.APSUBUSW},
- {"PSUBW", LTYPE3, i386.APSUBW},
- {"PUNPCKHQDQ", LTYPE3, i386.APUNPCKHQDQ},
- {"PUNPCKLQDQ", LTYPE3, i386.APUNPCKLQDQ},
- {"PXOR", LTYPE3, i386.APXOR},
- {"RCPPS", LTYPE3, i386.ARCPPS},
- {"RCPSS", LTYPE3, i386.ARCPSS},
- {"RSQRTPS", LTYPE3, i386.ARSQRTPS},
- {"RSQRTSS", LTYPE3, i386.ARSQRTSS},
- {"SQRTPD", LTYPE3, i386.ASQRTPD},
- {"SQRTPS", LTYPE3, i386.ASQRTPS},
- {"SQRTSD", LTYPE3, i386.ASQRTSD},
- {"SQRTSS", LTYPE3, i386.ASQRTSS},
- {"SUBPD", LTYPE3, i386.ASUBPD},
- {"SUBPS", LTYPE3, i386.ASUBPS},
- {"SUBSD", LTYPE3, i386.ASUBSD},
- {"SUBSS", LTYPE3, i386.ASUBSS},
- {"UCOMISD", LTYPE3, i386.AUCOMISD},
- {"UCOMISS", LTYPE3, i386.AUCOMISS},
- {"UNPCKHPD", LTYPE3, i386.AUNPCKHPD},
- {"UNPCKHPS", LTYPE3, i386.AUNPCKHPS},
- {"UNPCKLPD", LTYPE3, i386.AUNPCKLPD},
- {"UNPCKLPS", LTYPE3, i386.AUNPCKLPS},
- {"XORPD", LTYPE3, i386.AXORPD},
- {"XORPS", LTYPE3, i386.AXORPS},
+ {"ADDPD", LTYPE3, x86.AADDPD},
+ {"ADDPS", LTYPE3, x86.AADDPS},
+ {"ADDSD", LTYPE3, x86.AADDSD},
+ {"ADDSS", LTYPE3, x86.AADDSS},
+ {"AESENC", LTYPE3, x86.AAESENC},
+ {"ANDNPD", LTYPE3, x86.AANDNPD},
+ {"ANDNPS", LTYPE3, x86.AANDNPS},
+ {"ANDPD", LTYPE3, x86.AANDPD},
+ {"ANDPS", LTYPE3, x86.AANDPS},
+ {"CMPPD", LTYPEXC, x86.ACMPPD},
+ {"CMPPS", LTYPEXC, x86.ACMPPS},
+ {"CMPSD", LTYPEXC, x86.ACMPSD},
+ {"CMPSS", LTYPEXC, x86.ACMPSS},
+ {"COMISD", LTYPE3, x86.ACOMISD},
+ {"COMISS", LTYPE3, x86.ACOMISS},
+ {"CVTPL2PD", LTYPE3, x86.ACVTPL2PD},
+ {"CVTPL2PS", LTYPE3, x86.ACVTPL2PS},
+ {"CVTPD2PL", LTYPE3, x86.ACVTPD2PL},
+ {"CVTPD2PS", LTYPE3, x86.ACVTPD2PS},
+ {"CVTPS2PL", LTYPE3, x86.ACVTPS2PL},
+ {"CVTPS2PD", LTYPE3, x86.ACVTPS2PD},
+ {"CVTSD2SL", LTYPE3, x86.ACVTSD2SL},
+ {"CVTSD2SS", LTYPE3, x86.ACVTSD2SS},
+ {"CVTSL2SD", LTYPE3, x86.ACVTSL2SD},
+ {"CVTSL2SS", LTYPE3, x86.ACVTSL2SS},
+ {"CVTSS2SD", LTYPE3, x86.ACVTSS2SD},
+ {"CVTSS2SL", LTYPE3, x86.ACVTSS2SL},
+ {"CVTTPD2PL", LTYPE3, x86.ACVTTPD2PL},
+ {"CVTTPS2PL", LTYPE3, x86.ACVTTPS2PL},
+ {"CVTTSD2SL", LTYPE3, x86.ACVTTSD2SL},
+ {"CVTTSS2SL", LTYPE3, x86.ACVTTSS2SL},
+ {"DIVPD", LTYPE3, x86.ADIVPD},
+ {"DIVPS", LTYPE3, x86.ADIVPS},
+ {"DIVSD", LTYPE3, x86.ADIVSD},
+ {"DIVSS", LTYPE3, x86.ADIVSS},
+ {"MASKMOVOU", LTYPE3, x86.AMASKMOVOU},
+ {"MASKMOVDQU", LTYPE3, x86.AMASKMOVOU}, /* syn */
+ {"MAXPD", LTYPE3, x86.AMAXPD},
+ {"MAXPS", LTYPE3, x86.AMAXPS},
+ {"MAXSD", LTYPE3, x86.AMAXSD},
+ {"MAXSS", LTYPE3, x86.AMAXSS},
+ {"MINPD", LTYPE3, x86.AMINPD},
+ {"MINPS", LTYPE3, x86.AMINPS},
+ {"MINSD", LTYPE3, x86.AMINSD},
+ {"MINSS", LTYPE3, x86.AMINSS},
+ {"MOVAPD", LTYPE3, x86.AMOVAPD},
+ {"MOVAPS", LTYPE3, x86.AMOVAPS},
+ {"MOVO", LTYPE3, x86.AMOVO},
+ {"MOVOA", LTYPE3, x86.AMOVO}, /* syn */
+ {"MOVOU", LTYPE3, x86.AMOVOU},
+ {"MOVHLPS", LTYPE3, x86.AMOVHLPS},
+ {"MOVHPD", LTYPE3, x86.AMOVHPD},
+ {"MOVHPS", LTYPE3, x86.AMOVHPS},
+ {"MOVLHPS", LTYPE3, x86.AMOVLHPS},
+ {"MOVLPD", LTYPE3, x86.AMOVLPD},
+ {"MOVLPS", LTYPE3, x86.AMOVLPS},
+ {"MOVMSKPD", LTYPE3, x86.AMOVMSKPD},
+ {"MOVMSKPS", LTYPE3, x86.AMOVMSKPS},
+ {"MOVNTO", LTYPE3, x86.AMOVNTO},
+ {"MOVNTDQ", LTYPE3, x86.AMOVNTO}, /* syn */
+ {"MOVNTPD", LTYPE3, x86.AMOVNTPD},
+ {"MOVNTPS", LTYPE3, x86.AMOVNTPS},
+ {"MOVSD", LTYPE3, x86.AMOVSD},
+ {"MOVSS", LTYPE3, x86.AMOVSS},
+ {"MOVUPD", LTYPE3, x86.AMOVUPD},
+ {"MOVUPS", LTYPE3, x86.AMOVUPS},
+ {"MULPD", LTYPE3, x86.AMULPD},
+ {"MULPS", LTYPE3, x86.AMULPS},
+ {"MULSD", LTYPE3, x86.AMULSD},
+ {"MULSS", LTYPE3, x86.AMULSS},
+ {"ORPD", LTYPE3, x86.AORPD},
+ {"ORPS", LTYPE3, x86.AORPS},
+ {"PADDQ", LTYPE3, x86.APADDQ},
+ {"PAND", LTYPE3, x86.APAND},
+ {"PCMPEQB", LTYPE3, x86.APCMPEQB},
+ {"PMAXSW", LTYPE3, x86.APMAXSW},
+ {"PMAXUB", LTYPE3, x86.APMAXUB},
+ {"PMINSW", LTYPE3, x86.APMINSW},
+ {"PMINUB", LTYPE3, x86.APMINUB},
+ {"PMOVMSKB", LTYPE3, x86.APMOVMSKB},
+ {"PSADBW", LTYPE3, x86.APSADBW},
+ {"PSHUFB", LTYPE3, x86.APSHUFB},
+ {"PSHUFHW", LTYPEX, x86.APSHUFHW},
+ {"PSHUFL", LTYPEX, x86.APSHUFL},
+ {"PSHUFLW", LTYPEX, x86.APSHUFLW},
+ {"PSUBB", LTYPE3, x86.APSUBB},
+ {"PSUBL", LTYPE3, x86.APSUBL},
+ {"PSUBQ", LTYPE3, x86.APSUBQ},
+ {"PSUBSB", LTYPE3, x86.APSUBSB},
+ {"PSUBSW", LTYPE3, x86.APSUBSW},
+ {"PSUBUSB", LTYPE3, x86.APSUBUSB},
+ {"PSUBUSW", LTYPE3, x86.APSUBUSW},
+ {"PSUBW", LTYPE3, x86.APSUBW},
+ {"PUNPCKHQDQ", LTYPE3, x86.APUNPCKHQDQ},
+ {"PUNPCKLQDQ", LTYPE3, x86.APUNPCKLQDQ},
+ {"PXOR", LTYPE3, x86.APXOR},
+ {"RCPPS", LTYPE3, x86.ARCPPS},
+ {"RCPSS", LTYPE3, x86.ARCPSS},
+ {"RSQRTPS", LTYPE3, x86.ARSQRTPS},
+ {"RSQRTSS", LTYPE3, x86.ARSQRTSS},
+ {"SQRTPD", LTYPE3, x86.ASQRTPD},
+ {"SQRTPS", LTYPE3, x86.ASQRTPS},
+ {"SQRTSD", LTYPE3, x86.ASQRTSD},
+ {"SQRTSS", LTYPE3, x86.ASQRTSS},
+ {"SUBPD", LTYPE3, x86.ASUBPD},
+ {"SUBPS", LTYPE3, x86.ASUBPS},
+ {"SUBSD", LTYPE3, x86.ASUBSD},
+ {"SUBSS", LTYPE3, x86.ASUBSS},
+ {"UCOMISD", LTYPE3, x86.AUCOMISD},
+ {"UCOMISS", LTYPE3, x86.AUCOMISS},
+ {"UNPCKHPD", LTYPE3, x86.AUNPCKHPD},
+ {"UNPCKHPS", LTYPE3, x86.AUNPCKHPS},
+ {"UNPCKLPD", LTYPE3, x86.AUNPCKLPD},
+ {"UNPCKLPS", LTYPE3, x86.AUNPCKLPS},
+ {"XORPD", LTYPE3, x86.AXORPD},
+ {"XORPS", LTYPE3, x86.AXORPS},
{"USEFIELD", LTYPEN, obj.AUSEFIELD},
{"PCDATA", LTYPEPC, obj.APCDATA},
{"FUNCDATA", LTYPEF, obj.AFUNCDATA},
}
func cinit() {
- nullgen.Type = i386.REG_NONE
- nullgen.Index = i386.REG_NONE
+ nullgen.Type = x86.REG_NONE
+ nullgen.Index = x86.REG_NONE
}
func checkscale(scale int16) {