mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.ssa] cmd/compile: more 386 port changes
Fix up zero/move code, including duff calls and rep movs. Handle the new ops generated by dec64.rules. Fix constant shifts. Change-Id: I7d89194b29b04311bfafa0fd93b9f5644af04df9 Reviewed-on: https://go-review.googlesource.com/25033 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
parent
1b0404c4ca
commit
4a33af6bb6
9 changed files with 550 additions and 274 deletions
|
|
@ -285,8 +285,6 @@ const (
|
|||
Op386MOVBstore
|
||||
Op386MOVWstore
|
||||
Op386MOVLstore
|
||||
Op386MOVOload
|
||||
Op386MOVOstore
|
||||
Op386MOVBloadidx1
|
||||
Op386MOVWloadidx1
|
||||
Op386MOVWloadidx2
|
||||
|
|
@ -306,7 +304,6 @@ const (
|
|||
Op386MOVLstoreconstidx1
|
||||
Op386MOVLstoreconstidx4
|
||||
Op386DUFFZERO
|
||||
Op386MOVOconst
|
||||
Op386REPSTOSL
|
||||
Op386CALLstatic
|
||||
Op386CALLclosure
|
||||
|
|
@ -3152,32 +3149,6 @@ var opcodeTable = [...]opInfo{
|
|||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "MOVOload",
|
||||
auxType: auxSymOff,
|
||||
argLen: 2,
|
||||
asm: x86.AMOVUPS,
|
||||
reg: regInfo{
|
||||
inputs: []inputInfo{
|
||||
{0, 65791}, // AX CX DX BX SP BP SI DI SB
|
||||
},
|
||||
outputs: []outputInfo{
|
||||
{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "MOVOstore",
|
||||
auxType: auxSymOff,
|
||||
argLen: 3,
|
||||
asm: x86.AMOVUPS,
|
||||
reg: regInfo{
|
||||
inputs: []inputInfo{
|
||||
{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
|
||||
{0, 65791}, // AX CX DX BX SP BP SI DI SB
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "MOVBloadidx1",
|
||||
auxType: auxSymOff,
|
||||
|
|
@ -3418,22 +3389,11 @@ var opcodeTable = [...]opInfo{
|
|||
reg: regInfo{
|
||||
inputs: []inputInfo{
|
||||
{0, 128}, // DI
|
||||
{1, 256}, // X0
|
||||
{1, 1}, // AX
|
||||
},
|
||||
clobbers: 131200, // DI FLAGS
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "MOVOconst",
|
||||
auxType: auxInt128,
|
||||
argLen: 0,
|
||||
rematerializeable: true,
|
||||
reg: regInfo{
|
||||
outputs: []outputInfo{
|
||||
{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "REPSTOSL",
|
||||
argLen: 4,
|
||||
|
|
@ -3502,7 +3462,7 @@ var opcodeTable = [...]opInfo{
|
|||
{0, 128}, // DI
|
||||
{1, 64}, // SI
|
||||
},
|
||||
clobbers: 131520, // SI DI X0 FLAGS
|
||||
clobbers: 131266, // CX SI DI FLAGS
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue