...
Source file src/pkg/cmd/compile/internal/ssa/rewrite386splitload.go
1
2
3
4 package ssa
5
6 import "fmt"
7 import "math"
8 import "cmd/internal/obj"
9 import "cmd/internal/objabi"
10 import "cmd/compile/internal/types"
11
12 var _ = fmt.Println
13 var _ = math.MinInt8
14 var _ = obj.ANOP
15 var _ = objabi.GOROOT
16 var _ = types.TypeMem
17
18 func rewriteValue386splitload(v *Value) bool {
19 switch v.Op {
20 case Op386CMPBconstload:
21 return rewriteValue386splitload_Op386CMPBconstload_0(v)
22 case Op386CMPBload:
23 return rewriteValue386splitload_Op386CMPBload_0(v)
24 case Op386CMPLconstload:
25 return rewriteValue386splitload_Op386CMPLconstload_0(v)
26 case Op386CMPLload:
27 return rewriteValue386splitload_Op386CMPLload_0(v)
28 case Op386CMPWconstload:
29 return rewriteValue386splitload_Op386CMPWconstload_0(v)
30 case Op386CMPWload:
31 return rewriteValue386splitload_Op386CMPWload_0(v)
32 }
33 return false
34 }
35 func rewriteValue386splitload_Op386CMPBconstload_0(v *Value) bool {
36 b := v.Block
37 typ := &b.Func.Config.Types
38
39
40
41 for {
42 vo := v.AuxInt
43 sym := v.Aux
44 mem := v.Args[1]
45 ptr := v.Args[0]
46 v.reset(Op386CMPBconst)
47 v.AuxInt = valOnly(vo)
48 v0 := b.NewValue0(v.Pos, Op386MOVBload, typ.UInt8)
49 v0.AuxInt = offOnly(vo)
50 v0.Aux = sym
51 v0.AddArg(ptr)
52 v0.AddArg(mem)
53 v.AddArg(v0)
54 return true
55 }
56 }
57 func rewriteValue386splitload_Op386CMPBload_0(v *Value) bool {
58 b := v.Block
59 typ := &b.Func.Config.Types
60
61
62
63 for {
64 off := v.AuxInt
65 sym := v.Aux
66 mem := v.Args[2]
67 ptr := v.Args[0]
68 x := v.Args[1]
69 v.reset(Op386CMPB)
70 v0 := b.NewValue0(v.Pos, Op386MOVBload, typ.UInt8)
71 v0.AuxInt = off
72 v0.Aux = sym
73 v0.AddArg(ptr)
74 v0.AddArg(mem)
75 v.AddArg(v0)
76 v.AddArg(x)
77 return true
78 }
79 }
80 func rewriteValue386splitload_Op386CMPLconstload_0(v *Value) bool {
81 b := v.Block
82 typ := &b.Func.Config.Types
83
84
85
86 for {
87 vo := v.AuxInt
88 sym := v.Aux
89 mem := v.Args[1]
90 ptr := v.Args[0]
91 v.reset(Op386CMPLconst)
92 v.AuxInt = valOnly(vo)
93 v0 := b.NewValue0(v.Pos, Op386MOVLload, typ.UInt32)
94 v0.AuxInt = offOnly(vo)
95 v0.Aux = sym
96 v0.AddArg(ptr)
97 v0.AddArg(mem)
98 v.AddArg(v0)
99 return true
100 }
101 }
102 func rewriteValue386splitload_Op386CMPLload_0(v *Value) bool {
103 b := v.Block
104 typ := &b.Func.Config.Types
105
106
107
108 for {
109 off := v.AuxInt
110 sym := v.Aux
111 mem := v.Args[2]
112 ptr := v.Args[0]
113 x := v.Args[1]
114 v.reset(Op386CMPL)
115 v0 := b.NewValue0(v.Pos, Op386MOVLload, typ.UInt32)
116 v0.AuxInt = off
117 v0.Aux = sym
118 v0.AddArg(ptr)
119 v0.AddArg(mem)
120 v.AddArg(v0)
121 v.AddArg(x)
122 return true
123 }
124 }
125 func rewriteValue386splitload_Op386CMPWconstload_0(v *Value) bool {
126 b := v.Block
127 typ := &b.Func.Config.Types
128
129
130
131 for {
132 vo := v.AuxInt
133 sym := v.Aux
134 mem := v.Args[1]
135 ptr := v.Args[0]
136 v.reset(Op386CMPWconst)
137 v.AuxInt = valOnly(vo)
138 v0 := b.NewValue0(v.Pos, Op386MOVWload, typ.UInt16)
139 v0.AuxInt = offOnly(vo)
140 v0.Aux = sym
141 v0.AddArg(ptr)
142 v0.AddArg(mem)
143 v.AddArg(v0)
144 return true
145 }
146 }
147 func rewriteValue386splitload_Op386CMPWload_0(v *Value) bool {
148 b := v.Block
149 typ := &b.Func.Config.Types
150
151
152
153 for {
154 off := v.AuxInt
155 sym := v.Aux
156 mem := v.Args[2]
157 ptr := v.Args[0]
158 x := v.Args[1]
159 v.reset(Op386CMPW)
160 v0 := b.NewValue0(v.Pos, Op386MOVWload, typ.UInt16)
161 v0.AuxInt = off
162 v0.Aux = sym
163 v0.AddArg(ptr)
164 v0.AddArg(mem)
165 v.AddArg(v0)
166 v.AddArg(x)
167 return true
168 }
169 }
170 func rewriteBlock386splitload(b *Block) bool {
171 config := b.Func.Config
172 typ := &config.Types
173 _ = typ
174 v := b.Control
175 _ = v
176 switch b.Kind {
177 }
178 return false
179 }
180
View as plain text