OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/compiler/code-generator.h" | 5 #include "src/compiler/code-generator.h" |
6 | 6 |
7 #include "src/arm64/macro-assembler-arm64.h" | 7 #include "src/arm64/macro-assembler-arm64.h" |
8 #include "src/compiler/code-generator-impl.h" | 8 #include "src/compiler/code-generator-impl.h" |
9 #include "src/compiler/gap-resolver.h" | 9 #include "src/compiler/gap-resolver.h" |
10 #include "src/compiler/node-matchers.h" | 10 #include "src/compiler/node-matchers.h" |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 } else { | 182 } else { |
183 __ Add(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); | 183 __ Add(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); |
184 } | 184 } |
185 break; | 185 break; |
186 case kArm64And: | 186 case kArm64And: |
187 __ And(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); | 187 __ And(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); |
188 break; | 188 break; |
189 case kArm64And32: | 189 case kArm64And32: |
190 __ And(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); | 190 __ And(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); |
191 break; | 191 break; |
| 192 case kArm64Bic: |
| 193 __ Bic(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); |
| 194 break; |
| 195 case kArm64Bic32: |
| 196 __ Bic(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); |
| 197 break; |
192 case kArm64Mul: | 198 case kArm64Mul: |
193 __ Mul(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1)); | 199 __ Mul(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1)); |
194 break; | 200 break; |
195 case kArm64Mul32: | 201 case kArm64Mul32: |
196 __ Mul(i.OutputRegister32(), i.InputRegister32(0), i.InputRegister32(1)); | 202 __ Mul(i.OutputRegister32(), i.InputRegister32(0), i.InputRegister32(1)); |
197 break; | 203 break; |
198 case kArm64Idiv: | 204 case kArm64Idiv: |
199 __ Sdiv(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1)); | 205 __ Sdiv(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1)); |
200 break; | 206 break; |
201 case kArm64Idiv32: | 207 case kArm64Idiv32: |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 break; | 255 break; |
250 case kArm64Neg32: | 256 case kArm64Neg32: |
251 __ Neg(i.OutputRegister32(), i.InputOperand32(0)); | 257 __ Neg(i.OutputRegister32(), i.InputOperand32(0)); |
252 break; | 258 break; |
253 case kArm64Or: | 259 case kArm64Or: |
254 __ Orr(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); | 260 __ Orr(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); |
255 break; | 261 break; |
256 case kArm64Or32: | 262 case kArm64Or32: |
257 __ Orr(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); | 263 __ Orr(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); |
258 break; | 264 break; |
259 case kArm64Xor: | 265 case kArm64Orn: |
| 266 __ Orn(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); |
| 267 break; |
| 268 case kArm64Orn32: |
| 269 __ Orn(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); |
| 270 break; |
| 271 case kArm64Eor: |
260 __ Eor(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); | 272 __ Eor(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); |
261 break; | 273 break; |
262 case kArm64Xor32: | 274 case kArm64Eor32: |
263 __ Eor(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); | 275 __ Eor(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); |
264 break; | 276 break; |
| 277 case kArm64Eon: |
| 278 __ Eon(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); |
| 279 break; |
| 280 case kArm64Eon32: |
| 281 __ Eon(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); |
| 282 break; |
265 case kArm64Sub: | 283 case kArm64Sub: |
266 __ Sub(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); | 284 __ Sub(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); |
267 break; | 285 break; |
268 case kArm64Sub32: | 286 case kArm64Sub32: |
269 if (FlagsModeField::decode(opcode) != kFlags_none) { | 287 if (FlagsModeField::decode(opcode) != kFlags_none) { |
270 __ Subs(i.OutputRegister32(), i.InputRegister32(0), | 288 __ Subs(i.OutputRegister32(), i.InputRegister32(0), |
271 i.InputOperand32(1)); | 289 i.InputOperand32(1)); |
272 } else { | 290 } else { |
273 __ Sub(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); | 291 __ Sub(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); |
274 } | 292 } |
(...skipping 592 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
867 } | 885 } |
868 } | 886 } |
869 MarkLazyDeoptSite(); | 887 MarkLazyDeoptSite(); |
870 } | 888 } |
871 | 889 |
872 #undef __ | 890 #undef __ |
873 | 891 |
874 } // namespace compiler | 892 } // namespace compiler |
875 } // namespace internal | 893 } // namespace internal |
876 } // namespace v8 | 894 } // namespace v8 |
OLD | NEW |