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/ast/scopes.h" | 5 #include "src/ast/scopes.h" |
6 #include "src/compiler/code-generator.h" | 6 #include "src/compiler/code-generator.h" |
7 #include "src/compiler/code-generator-impl.h" | 7 #include "src/compiler/code-generator-impl.h" |
8 #include "src/compiler/gap-resolver.h" | 8 #include "src/compiler/gap-resolver.h" |
9 #include "src/compiler/node-matchers.h" | 9 #include "src/compiler/node-matchers.h" |
10 #include "src/compiler/osr.h" | 10 #include "src/compiler/osr.h" |
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
607 } | 607 } |
608 case kArchRet: | 608 case kArchRet: |
609 AssembleReturn(); | 609 AssembleReturn(); |
610 break; | 610 break; |
611 case kArchStackPointer: | 611 case kArchStackPointer: |
612 __ mov(i.OutputRegister(), sp); | 612 __ mov(i.OutputRegister(), sp); |
613 break; | 613 break; |
614 case kArchFramePointer: | 614 case kArchFramePointer: |
615 __ mov(i.OutputRegister(), fp); | 615 __ mov(i.OutputRegister(), fp); |
616 break; | 616 break; |
| 617 case kArchParentFramePointer: |
| 618 if (frame_access_state()->frame()->needs_frame()) { |
| 619 __ lw(i.OutputRegister(), MemOperand(fp, 0)); |
| 620 } else { |
| 621 __ mov(i.OutputRegister(), fp); |
| 622 } |
| 623 break; |
617 case kArchTruncateDoubleToI: | 624 case kArchTruncateDoubleToI: |
618 __ TruncateDoubleToI(i.OutputRegister(), i.InputDoubleRegister(0)); | 625 __ TruncateDoubleToI(i.OutputRegister(), i.InputDoubleRegister(0)); |
619 break; | 626 break; |
620 case kArchStoreWithWriteBarrier: { | 627 case kArchStoreWithWriteBarrier: { |
621 RecordWriteMode mode = | 628 RecordWriteMode mode = |
622 static_cast<RecordWriteMode>(MiscField::decode(instr->opcode())); | 629 static_cast<RecordWriteMode>(MiscField::decode(instr->opcode())); |
623 Register object = i.InputRegister(0); | 630 Register object = i.InputRegister(0); |
624 Register index = i.InputRegister(1); | 631 Register index = i.InputRegister(1); |
625 Register value = i.InputRegister(2); | 632 Register value = i.InputRegister(2); |
626 Register scratch0 = i.TempRegister(0); | 633 Register scratch0 = i.TempRegister(0); |
(...skipping 1483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2110 padding_size -= v8::internal::Assembler::kInstrSize; | 2117 padding_size -= v8::internal::Assembler::kInstrSize; |
2111 } | 2118 } |
2112 } | 2119 } |
2113 } | 2120 } |
2114 | 2121 |
2115 #undef __ | 2122 #undef __ |
2116 | 2123 |
2117 } // namespace compiler | 2124 } // namespace compiler |
2118 } // namespace internal | 2125 } // namespace internal |
2119 } // namespace v8 | 2126 } // namespace v8 |
OLD | NEW |