OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/compilation-info.h" | 7 #include "src/compilation-info.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 1016 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1027 | 1027 |
1028 void CodeGenerator::AssemblePopArgumentsAdaptorFrame(Register args_reg, | 1028 void CodeGenerator::AssemblePopArgumentsAdaptorFrame(Register args_reg, |
1029 Register scratch1, | 1029 Register scratch1, |
1030 Register scratch2, | 1030 Register scratch2, |
1031 Register scratch3) { | 1031 Register scratch3) { |
1032 DCHECK(!AreAliased(args_reg, scratch1, scratch2, scratch3)); | 1032 DCHECK(!AreAliased(args_reg, scratch1, scratch2, scratch3)); |
1033 Label done; | 1033 Label done; |
1034 | 1034 |
1035 // Check if current frame is an arguments adaptor frame. | 1035 // Check if current frame is an arguments adaptor frame. |
1036 __ LoadP(scratch1, MemOperand(fp, StandardFrameConstants::kContextOffset)); | 1036 __ LoadP(scratch1, MemOperand(fp, StandardFrameConstants::kContextOffset)); |
1037 __ CmpSmiLiteral(scratch1, Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR), r0); | 1037 __ CmpP(scratch1, |
| 1038 Operand(StackFrame::TypeToMarker(StackFrame::ARGUMENTS_ADAPTOR))); |
1038 __ bne(&done); | 1039 __ bne(&done); |
1039 | 1040 |
1040 // Load arguments count from current arguments adaptor frame (note, it | 1041 // Load arguments count from current arguments adaptor frame (note, it |
1041 // does not include receiver). | 1042 // does not include receiver). |
1042 Register caller_args_count_reg = scratch1; | 1043 Register caller_args_count_reg = scratch1; |
1043 __ LoadP(caller_args_count_reg, | 1044 __ LoadP(caller_args_count_reg, |
1044 MemOperand(fp, ArgumentsAdaptorFrameConstants::kLengthOffset)); | 1045 MemOperand(fp, ArgumentsAdaptorFrameConstants::kLengthOffset)); |
1045 __ SmiUntag(caller_args_count_reg); | 1046 __ SmiUntag(caller_args_count_reg); |
1046 | 1047 |
1047 ParameterCount callee_args_count(args_reg); | 1048 ParameterCount callee_args_count(args_reg); |
(...skipping 1848 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2896 padding_size -= 2; | 2897 padding_size -= 2; |
2897 } | 2898 } |
2898 } | 2899 } |
2899 } | 2900 } |
2900 | 2901 |
2901 #undef __ | 2902 #undef __ |
2902 | 2903 |
2903 } // namespace compiler | 2904 } // namespace compiler |
2904 } // namespace internal | 2905 } // namespace internal |
2905 } // namespace v8 | 2906 } // namespace v8 |
OLD | NEW |