| 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 |