...
Source file src/pkg/cmd/compile/internal/ssa/rewriteAMD64splitload.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 rewriteValueAMD64splitload(v *Value) bool {
19 switch v.Op {
20 case OpAMD64CMPBconstload:
21 return rewriteValueAMD64splitload_OpAMD64CMPBconstload_0(v)
22 case OpAMD64CMPBload:
23 return rewriteValueAMD64splitload_OpAMD64CMPBload_0(v)
24 case OpAMD64CMPLconstload:
25 return rewriteValueAMD64splitload_OpAMD64CMPLconstload_0(v)
26 case OpAMD64CMPLload:
27 return rewriteValueAMD64splitload_OpAMD64CMPLload_0(v)
28 case OpAMD64CMPQconstload:
29 return rewriteValueAMD64splitload_OpAMD64CMPQconstload_0(v)
30 case OpAMD64CMPQload:
31 return rewriteValueAMD64splitload_OpAMD64CMPQload_0(v)
32 case OpAMD64CMPWconstload:
33 return rewriteValueAMD64splitload_OpAMD64CMPWconstload_0(v)
34 case OpAMD64CMPWload:
35 return rewriteValueAMD64splitload_OpAMD64CMPWload_0(v)
36 }
37 return false
38 }
39 func rewriteValueAMD64splitload_OpAMD64CMPBconstload_0(v *Value) bool {
40 b := v.Block
41 typ := &b.Func.Config.Types
42
43
44
45 for {
46 vo := v.AuxInt
47 sym := v.Aux
48 mem := v.Args[1]
49 ptr := v.Args[0]
50 v.reset(OpAMD64CMPBconst)
51 v.AuxInt = valOnly(vo)
52 v0 := b.NewValue0(v.Pos, OpAMD64MOVBload, typ.UInt8)
53 v0.AuxInt = offOnly(vo)
54 v0.Aux = sym
55 v0.AddArg(ptr)
56 v0.AddArg(mem)
57 v.AddArg(v0)
58 return true
59 }
60 }
61 func rewriteValueAMD64splitload_OpAMD64CMPBload_0(v *Value) bool {
62 b := v.Block
63 typ := &b.Func.Config.Types
64
65
66
67 for {
68 off := v.AuxInt
69 sym := v.Aux
70 mem := v.Args[2]
71 ptr := v.Args[0]
72 x := v.Args[1]
73 v.reset(OpAMD64CMPB)
74 v0 := b.NewValue0(v.Pos, OpAMD64MOVBload, typ.UInt8)
75 v0.AuxInt = off
76 v0.Aux = sym
77 v0.AddArg(ptr)
78 v0.AddArg(mem)
79 v.AddArg(v0)
80 v.AddArg(x)
81 return true
82 }
83 }
84 func rewriteValueAMD64splitload_OpAMD64CMPLconstload_0(v *Value) bool {
85 b := v.Block
86 typ := &b.Func.Config.Types
87
88
89
90 for {
91 vo := v.AuxInt
92 sym := v.Aux
93 mem := v.Args[1]
94 ptr := v.Args[0]
95 v.reset(OpAMD64CMPLconst)
96 v.AuxInt = valOnly(vo)
97 v0 := b.NewValue0(v.Pos, OpAMD64MOVLload, typ.UInt32)
98 v0.AuxInt = offOnly(vo)
99 v0.Aux = sym
100 v0.AddArg(ptr)
101 v0.AddArg(mem)
102 v.AddArg(v0)
103 return true
104 }
105 }
106 func rewriteValueAMD64splitload_OpAMD64CMPLload_0(v *Value) bool {
107 b := v.Block
108 typ := &b.Func.Config.Types
109
110
111
112 for {
113 off := v.AuxInt
114 sym := v.Aux
115 mem := v.Args[2]
116 ptr := v.Args[0]
117 x := v.Args[1]
118 v.reset(OpAMD64CMPL)
119 v0 := b.NewValue0(v.Pos, OpAMD64MOVLload, typ.UInt32)
120 v0.AuxInt = off
121 v0.Aux = sym
122 v0.AddArg(ptr)
123 v0.AddArg(mem)
124 v.AddArg(v0)
125 v.AddArg(x)
126 return true
127 }
128 }
129 func rewriteValueAMD64splitload_OpAMD64CMPQconstload_0(v *Value) bool {
130 b := v.Block
131 typ := &b.Func.Config.Types
132
133
134
135 for {
136 vo := v.AuxInt
137 sym := v.Aux
138 mem := v.Args[1]
139 ptr := v.Args[0]
140 v.reset(OpAMD64CMPQconst)
141 v.AuxInt = valOnly(vo)
142 v0 := b.NewValue0(v.Pos, OpAMD64MOVQload, typ.UInt64)
143 v0.AuxInt = offOnly(vo)
144 v0.Aux = sym
145 v0.AddArg(ptr)
146 v0.AddArg(mem)
147 v.AddArg(v0)
148 return true
149 }
150 }
151 func rewriteValueAMD64splitload_OpAMD64CMPQload_0(v *Value) bool {
152 b := v.Block
153 typ := &b.Func.Config.Types
154
155
156
157 for {
158 off := v.AuxInt
159 sym := v.Aux
160 mem := v.Args[2]
161 ptr := v.Args[0]
162 x := v.Args[1]
163 v.reset(OpAMD64CMPQ)
164 v0 := b.NewValue0(v.Pos, OpAMD64MOVQload, typ.UInt64)
165 v0.AuxInt = off
166 v0.Aux = sym
167 v0.AddArg(ptr)
168 v0.AddArg(mem)
169 v.AddArg(v0)
170 v.AddArg(x)
171 return true
172 }
173 }
174 func rewriteValueAMD64splitload_OpAMD64CMPWconstload_0(v *Value) bool {
175 b := v.Block
176 typ := &b.Func.Config.Types
177
178
179
180 for {
181 vo := v.AuxInt
182 sym := v.Aux
183 mem := v.Args[1]
184 ptr := v.Args[0]
185 v.reset(OpAMD64CMPWconst)
186 v.AuxInt = valOnly(vo)
187 v0 := b.NewValue0(v.Pos, OpAMD64MOVWload, typ.UInt16)
188 v0.AuxInt = offOnly(vo)
189 v0.Aux = sym
190 v0.AddArg(ptr)
191 v0.AddArg(mem)
192 v.AddArg(v0)
193 return true
194 }
195 }
196 func rewriteValueAMD64splitload_OpAMD64CMPWload_0(v *Value) bool {
197 b := v.Block
198 typ := &b.Func.Config.Types
199
200
201
202 for {
203 off := v.AuxInt
204 sym := v.Aux
205 mem := v.Args[2]
206 ptr := v.Args[0]
207 x := v.Args[1]
208 v.reset(OpAMD64CMPW)
209 v0 := b.NewValue0(v.Pos, OpAMD64MOVWload, typ.UInt16)
210 v0.AuxInt = off
211 v0.Aux = sym
212 v0.AddArg(ptr)
213 v0.AddArg(mem)
214 v.AddArg(v0)
215 v.AddArg(x)
216 return true
217 }
218 }
219 func rewriteBlockAMD64splitload(b *Block) bool {
220 config := b.Func.Config
221 typ := &config.Types
222 _ = typ
223 v := b.Control
224 _ = v
225 switch b.Kind {
226 }
227 return false
228 }
229
View as plain text