@@ -116,51 +116,101 @@ func load_le_byte2_uint16(s []byte) uint16 {
116
116
return uint16 (s [0 ]) | uint16 (s [1 ])<< 8
117
117
}
118
118
119
+ func load_le_byte2_uint16_inv (s []byte ) uint16 {
120
+ // arm64:`MOVHU\t\(R[0-9]+\)`,-`ORR`,-`MOVB`
121
+ return uint16 (s [1 ])<< 8 | uint16 (s [0 ])
122
+ }
123
+
119
124
func load_le_byte4_uint32 (s []byte ) uint32 {
120
125
// arm64:`MOVWU\t\(R[0-9]+\)`,-`ORR`,-`MOV[BH]`
121
126
return uint32 (s [0 ]) | uint32 (s [1 ])<< 8 | uint32 (s [2 ])<< 16 | uint32 (s [3 ])<< 24
122
127
}
123
128
129
+ func load_le_byte4_uint32_inv (s []byte ) uint32 {
130
+ // arm64:`MOVWU\t\(R[0-9]+\)`,-`ORR`,-`MOV[BH]`
131
+ return uint32 (s [3 ])<< 24 | uint32 (s [2 ])<< 16 | uint32 (s [1 ])<< 8 | uint32 (s [0 ])
132
+ }
133
+
124
134
func load_le_byte8_uint64 (s []byte ) uint64 {
125
135
// arm64:`MOVD\t\(R[0-9]+\)`,-`ORR`,-`MOV[BHW]`
126
136
return uint64 (s [0 ]) | uint64 (s [1 ])<< 8 | uint64 (s [2 ])<< 16 | uint64 (s [3 ])<< 24 | uint64 (s [4 ])<< 32 | uint64 (s [5 ])<< 40 | uint64 (s [6 ])<< 48 | uint64 (s [7 ])<< 56
127
137
}
128
138
139
+ func load_le_byte8_uint64_inv (s []byte ) uint64 {
140
+ // arm64:`MOVD\t\(R[0-9]+\)`,-`ORR`,-`MOV[BHW]`
141
+ return uint64 (s [7 ])<< 56 | uint64 (s [6 ])<< 48 | uint64 (s [5 ])<< 40 | uint64 (s [4 ])<< 32 | uint64 (s [3 ])<< 24 | uint64 (s [2 ])<< 16 | uint64 (s [1 ])<< 8 | uint64 (s [0 ])
142
+ }
143
+
129
144
func load_be_byte2_uint16 (s []byte ) uint16 {
130
145
// arm64:`MOVHU\t\(R[0-9]+\)`,`REV16W`,-`ORR`,-`MOVB`
131
146
return uint16 (s [0 ])<< 8 | uint16 (s [1 ])
132
147
}
133
148
149
+ func load_be_byte2_uint16_inv (s []byte ) uint16 {
150
+ // arm64:`MOVHU\t\(R[0-9]+\)`,`REV16W`,-`ORR`,-`MOVB`
151
+ return uint16 (s [1 ]) | uint16 (s [0 ])<< 8
152
+ }
153
+
134
154
func load_be_byte4_uint32 (s []byte ) uint32 {
135
155
// arm64:`MOVWU\t\(R[0-9]+\)`,`REVW`,-`ORR`,-`REV16W`,-`MOV[BH]`
136
156
return uint32 (s [0 ])<< 24 | uint32 (s [1 ])<< 16 | uint32 (s [2 ])<< 8 | uint32 (s [3 ])
137
157
}
138
158
159
+ func load_be_byte4_uint32_inv (s []byte ) uint32 {
160
+ // arm64:`MOVWU\t\(R[0-9]+\)`,`REVW`,-`ORR`,-`REV16W`,-`MOV[BH]`
161
+ return uint32 (s [3 ]) | uint32 (s [2 ])<< 8 | uint32 (s [1 ])<< 16 | uint32 (s [0 ])<< 24
162
+ }
163
+
139
164
func load_be_byte8_uint64 (s []byte ) uint64 {
140
165
// arm64:`MOVD\t\(R[0-9]+\)`,`REV`,-`ORR`,-`REVW`,-`REV16W`,-`MOV[BHW]`
141
166
return uint64 (s [0 ])<< 56 | uint64 (s [1 ])<< 48 | uint64 (s [2 ])<< 40 | uint64 (s [3 ])<< 32 | uint64 (s [4 ])<< 24 | uint64 (s [5 ])<< 16 | uint64 (s [6 ])<< 8 | uint64 (s [7 ])
142
167
}
143
168
169
+ func load_be_byte8_uint64_inv (s []byte ) uint64 {
170
+ // arm64:`MOVD\t\(R[0-9]+\)`,`REV`,-`ORR`,-`REVW`,-`REV16W`,-`MOV[BHW]`
171
+ return uint64 (s [7 ]) | uint64 (s [6 ])<< 8 | uint64 (s [5 ])<< 16 | uint64 (s [4 ])<< 24 | uint64 (s [3 ])<< 32 | uint64 (s [2 ])<< 40 | uint64 (s [1 ])<< 48 | uint64 (s [0 ])<< 56
172
+ }
173
+
144
174
func load_le_byte2_uint16_idx (s []byte , idx int ) uint16 {
145
175
// arm64:`MOVHU\s\(R[0-9]+\)\(R[0-9]+\)`,-`ORR`,-`MOVB`
146
176
return uint16 (s [idx ]) | uint16 (s [idx + 1 ])<< 8
147
177
}
148
178
179
+ func load_le_byte2_uint16_idx_inv (s []byte , idx int ) uint16 {
180
+ // arm64:`MOVHU\s\(R[0-9]+\)\(R[0-9]+\)`,-`ORR`,-`MOVB`
181
+ return uint16 (s [idx + 1 ])<< 8 | uint16 (s [idx ])
182
+ }
183
+
149
184
func load_le_byte4_uint32_idx (s []byte , idx int ) uint32 {
150
185
// arm64:`MOVWU\s\(R[0-9]+\)\(R[0-9]+\)`,-`ORR`,-`MOV[BH]`
151
186
return uint32 (s [idx ]) | uint32 (s [idx + 1 ])<< 8 | uint32 (s [idx + 2 ])<< 16 | uint32 (s [idx + 3 ])<< 24
152
187
}
153
188
189
+ func load_le_byte4_uint32_idx_inv (s []byte , idx int ) uint32 {
190
+ // arm64:`MOVWU\s\(R[0-9]+\)\(R[0-9]+\)`,-`ORR`,-`MOV[BH]`
191
+ return uint32 (s [idx + 3 ])<< 24 | uint32 (s [idx + 2 ])<< 16 | uint32 (s [idx + 1 ])<< 8 | uint32 (s [idx ])
192
+ }
193
+
154
194
func load_le_byte8_uint64_idx (s []byte , idx int ) uint64 {
155
195
// arm64:`MOVD\s\(R[0-9]+\)\(R[0-9]+\)`,-`ORR`,-`MOV[BHW]`
156
196
return uint64 (s [idx ]) | uint64 (s [idx + 1 ])<< 8 | uint64 (s [idx + 2 ])<< 16 | uint64 (s [idx + 3 ])<< 24 | uint64 (s [idx + 4 ])<< 32 | uint64 (s [idx + 5 ])<< 40 | uint64 (s [idx + 6 ])<< 48 | uint64 (s [idx + 7 ])<< 56
157
197
}
158
198
199
+ func load_le_byte8_uint64_idx_inv (s []byte , idx int ) uint64 {
200
+ // arm64:`MOVD\s\(R[0-9]+\)\(R[0-9]+\)`,-`ORR`,-`MOV[BHW]`
201
+ return uint64 (s [idx + 7 ])<< 56 | uint64 (s [idx + 6 ])<< 48 | uint64 (s [idx + 5 ])<< 40 | uint64 (s [idx + 4 ])<< 32 | uint64 (s [idx + 3 ])<< 24 | uint64 (s [idx + 2 ])<< 16 | uint64 (s [idx + 1 ])<< 8 | uint64 (s [idx ])
202
+ }
203
+
159
204
func load_be_byte2_uint16_idx (s []byte , idx int ) uint16 {
160
205
// arm64:`MOVHU\s\(R[0-9]+\)\(R[0-9]+\)`,`REV16W`,-`ORR`,-`MOVB`
161
206
return uint16 (s [idx ])<< 8 | uint16 (s [idx + 1 ])
162
207
}
163
208
209
+ func load_be_byte2_uint16_idx_inv (s []byte , idx int ) uint16 {
210
+ // arm64:`MOVHU\s\(R[0-9]+\)\(R[0-9]+\)`,`REV16W`,-`ORR`,-`MOVB`
211
+ return uint16 (s [idx + 1 ]) | uint16 (s [idx ])<< 8
212
+ }
213
+
164
214
func load_be_byte4_uint32_idx (s []byte , idx int ) uint32 {
165
215
// arm64:`MOVWU\s\(R[0-9]+\)\(R[0-9]+\)`,`REVW`,-`ORR`,-`MOV[BH]`,-`REV16W`
166
216
return uint32 (s [idx ])<< 24 | uint32 (s [idx + 1 ])<< 16 | uint32 (s [idx + 2 ])<< 8 | uint32 (s [idx + 3 ])
@@ -176,21 +226,41 @@ func load_le_byte2_uint16_idx2(s []byte, idx int) uint16 {
176
226
return uint16 (s [idx << 1 ]) | uint16 (s [(idx << 1 )+ 1 ])<< 8
177
227
}
178
228
229
+ func load_le_byte2_uint16_idx2_inv (s []byte , idx int ) uint16 {
230
+ // arm64:`MOVHU\s\(R[0-9]+\)\(R[0-9]+<<1\)`,-`ORR`,-`MOVB`
231
+ return uint16 (s [(idx << 1 )+ 1 ])<< 8 | uint16 (s [idx << 1 ])
232
+ }
233
+
179
234
func load_le_byte4_uint32_idx4 (s []byte , idx int ) uint32 {
180
235
// arm64:`MOVWU\s\(R[0-9]+\)\(R[0-9]+<<2\)`,-`ORR`,-`MOV[BH]`
181
236
return uint32 (s [idx << 2 ]) | uint32 (s [(idx << 2 )+ 1 ])<< 8 | uint32 (s [(idx << 2 )+ 2 ])<< 16 | uint32 (s [(idx << 2 )+ 3 ])<< 24
182
237
}
183
238
239
+ func load_le_byte4_uint32_idx4_inv (s []byte , idx int ) uint32 {
240
+ // arm64:`MOVWU\s\(R[0-9]+\)\(R[0-9]+<<2\)`,-`ORR`,-`MOV[BH]`
241
+ return uint32 (s [(idx << 2 )+ 3 ])<< 24 | uint32 (s [(idx << 2 )+ 2 ])<< 16 | uint32 (s [(idx << 2 )+ 1 ])<< 8 | uint32 (s [idx << 2 ])
242
+ }
243
+
184
244
func load_le_byte8_uint64_idx8 (s []byte , idx int ) uint64 {
185
245
// arm64:`MOVD\s\(R[0-9]+\)\(R[0-9]+<<3\)`,-`ORR`,-`MOV[BHW]`
186
246
return uint64 (s [idx << 3 ]) | uint64 (s [(idx << 3 )+ 1 ])<< 8 | uint64 (s [(idx << 3 )+ 2 ])<< 16 | uint64 (s [(idx << 3 )+ 3 ])<< 24 | uint64 (s [(idx << 3 )+ 4 ])<< 32 | uint64 (s [(idx << 3 )+ 5 ])<< 40 | uint64 (s [(idx << 3 )+ 6 ])<< 48 | uint64 (s [(idx << 3 )+ 7 ])<< 56
187
247
}
188
248
249
+ func load_le_byte8_uint64_idx8_inv (s []byte , idx int ) uint64 {
250
+ // arm64:`MOVD\s\(R[0-9]+\)\(R[0-9]+<<3\)`,-`ORR`,-`MOV[BHW]`
251
+ return uint64 (s [(idx << 3 )+ 7 ])<< 56 | uint64 (s [(idx << 3 )+ 6 ])<< 48 | uint64 (s [(idx << 3 )+ 5 ])<< 40 | uint64 (s [(idx << 3 )+ 4 ])<< 32 | uint64 (s [(idx << 3 )+ 3 ])<< 24 | uint64 (s [(idx << 3 )+ 2 ])<< 16 | uint64 (s [(idx << 3 )+ 1 ])<< 8 | uint64 (s [idx << 3 ])
252
+ }
253
+
189
254
func load_be_byte2_uint16_idx2 (s []byte , idx int ) uint16 {
190
255
// arm64:`MOVHU\s\(R[0-9]+\)\(R[0-9]+<<1\)`,`REV16W`,-`ORR`,-`MOVB`
191
256
return uint16 (s [idx << 1 ])<< 8 | uint16 (s [(idx << 1 )+ 1 ])
192
257
}
193
258
259
+ func load_be_byte2_uint16_idx2_inv (s []byte , idx int ) uint16 {
260
+ // arm64:`MOVHU\s\(R[0-9]+\)\(R[0-9]+<<1\)`,`REV16W`,-`ORR`,-`MOVB`
261
+ return uint16 (s [(idx << 1 )+ 1 ]) | uint16 (s [idx << 1 ])<< 8
262
+ }
263
+
194
264
func load_be_byte4_uint32_idx4 (s []byte , idx int ) uint32 {
195
265
// arm64:`MOVWU\s\(R[0-9]+\)\(R[0-9]+<<2\)`,`REVW`,-`ORR`,-`MOV[BH]`,-`REV16W`
196
266
return uint32 (s [idx << 2 ])<< 24 | uint32 (s [(idx << 2 )+ 1 ])<< 16 | uint32 (s [(idx << 2 )+ 2 ])<< 8 | uint32 (s [(idx << 2 )+ 3 ])
0 commit comments