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 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 __ Sub(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); | 312 __ Sub(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1)); |
313 break; | 313 break; |
314 case kArm64Sub32: | 314 case kArm64Sub32: |
315 if (FlagsModeField::decode(opcode) != kFlags_none) { | 315 if (FlagsModeField::decode(opcode) != kFlags_none) { |
316 __ Subs(i.OutputRegister32(), i.InputRegister32(0), | 316 __ Subs(i.OutputRegister32(), i.InputRegister32(0), |
317 i.InputOperand32(1)); | 317 i.InputOperand32(1)); |
318 } else { | 318 } else { |
319 __ Sub(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); | 319 __ Sub(i.OutputRegister32(), i.InputRegister32(0), i.InputOperand32(1)); |
320 } | 320 } |
321 break; | 321 break; |
322 case kArm64Shl: | 322 case kArm64Lsl: |
323 ASSEMBLE_SHIFT(Lsl, 64); | 323 ASSEMBLE_SHIFT(Lsl, 64); |
324 break; | 324 break; |
325 case kArm64Shl32: | 325 case kArm64Lsl32: |
326 ASSEMBLE_SHIFT(Lsl, 32); | 326 ASSEMBLE_SHIFT(Lsl, 32); |
327 break; | 327 break; |
328 case kArm64Shr: | 328 case kArm64Lsr: |
329 ASSEMBLE_SHIFT(Lsr, 64); | 329 ASSEMBLE_SHIFT(Lsr, 64); |
330 break; | 330 break; |
331 case kArm64Shr32: | 331 case kArm64Lsr32: |
332 ASSEMBLE_SHIFT(Lsr, 32); | 332 ASSEMBLE_SHIFT(Lsr, 32); |
333 break; | 333 break; |
334 case kArm64Sar: | 334 case kArm64Asr: |
335 ASSEMBLE_SHIFT(Asr, 64); | 335 ASSEMBLE_SHIFT(Asr, 64); |
336 break; | 336 break; |
337 case kArm64Sar32: | 337 case kArm64Asr32: |
338 ASSEMBLE_SHIFT(Asr, 32); | 338 ASSEMBLE_SHIFT(Asr, 32); |
339 break; | 339 break; |
340 case kArm64Ror: | 340 case kArm64Ror: |
341 ASSEMBLE_SHIFT(Ror, 64); | 341 ASSEMBLE_SHIFT(Ror, 64); |
342 break; | 342 break; |
343 case kArm64Ror32: | 343 case kArm64Ror32: |
344 ASSEMBLE_SHIFT(Ror, 32); | 344 ASSEMBLE_SHIFT(Ror, 32); |
345 break; | 345 break; |
346 case kArm64Mov32: | 346 case kArm64Mov32: |
347 __ Mov(i.OutputRegister32(), i.InputRegister32(0)); | 347 __ Mov(i.OutputRegister32(), i.InputRegister32(0)); |
348 break; | 348 break; |
349 case kArm64Sxtw: | 349 case kArm64Sxtw: |
350 __ Sxtw(i.OutputRegister(), i.InputRegister32(0)); | 350 __ Sxtw(i.OutputRegister(), i.InputRegister32(0)); |
351 break; | 351 break; |
| 352 case kArm64Ubfx: |
| 353 __ Ubfx(i.OutputRegister(), i.InputRegister(0), i.InputInt8(1), |
| 354 i.InputInt8(2)); |
| 355 break; |
| 356 case kArm64Ubfx32: |
| 357 __ Ubfx(i.OutputRegister32(), i.InputRegister32(0), i.InputInt8(1), |
| 358 i.InputInt8(2)); |
| 359 break; |
352 case kArm64Claim: { | 360 case kArm64Claim: { |
353 int words = MiscField::decode(instr->opcode()); | 361 int words = MiscField::decode(instr->opcode()); |
354 __ Claim(words); | 362 __ Claim(words); |
355 break; | 363 break; |
356 } | 364 } |
357 case kArm64Poke: { | 365 case kArm64Poke: { |
358 int slot = MiscField::decode(instr->opcode()); | 366 int slot = MiscField::decode(instr->opcode()); |
359 Operand operand(slot * kPointerSize); | 367 Operand operand(slot * kPointerSize); |
360 __ Poke(i.InputRegister(0), operand); | 368 __ Poke(i.InputRegister(0), operand); |
361 break; | 369 break; |
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
927 } | 935 } |
928 } | 936 } |
929 MarkLazyDeoptSite(); | 937 MarkLazyDeoptSite(); |
930 } | 938 } |
931 | 939 |
932 #undef __ | 940 #undef __ |
933 | 941 |
934 } // namespace compiler | 942 } // namespace compiler |
935 } // namespace internal | 943 } // namespace internal |
936 } // namespace v8 | 944 } // namespace v8 |
OLD | NEW |