OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 5239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5250 | 5250 |
5251 void LCodeGen::EmitIsConstructCall(Register temp) { | 5251 void LCodeGen::EmitIsConstructCall(Register temp) { |
5252 // Get the frame pointer for the calling frame. | 5252 // Get the frame pointer for the calling frame. |
5253 __ movq(temp, Operand(rbp, StandardFrameConstants::kCallerFPOffset)); | 5253 __ movq(temp, Operand(rbp, StandardFrameConstants::kCallerFPOffset)); |
5254 | 5254 |
5255 // Skip the arguments adaptor frame if it exists. | 5255 // Skip the arguments adaptor frame if it exists. |
5256 Label check_frame_marker; | 5256 Label check_frame_marker; |
5257 __ Cmp(Operand(temp, StandardFrameConstants::kContextOffset), | 5257 __ Cmp(Operand(temp, StandardFrameConstants::kContextOffset), |
5258 Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); | 5258 Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); |
5259 __ j(not_equal, &check_frame_marker, Label::kNear); | 5259 __ j(not_equal, &check_frame_marker, Label::kNear); |
5260 __ movq(temp, Operand(rax, StandardFrameConstants::kCallerFPOffset)); | 5260 __ movq(temp, Operand(temp, StandardFrameConstants::kCallerFPOffset)); |
5261 | 5261 |
5262 // Check the marker in the calling frame. | 5262 // Check the marker in the calling frame. |
5263 __ bind(&check_frame_marker); | 5263 __ bind(&check_frame_marker); |
5264 __ Cmp(Operand(temp, StandardFrameConstants::kMarkerOffset), | 5264 __ Cmp(Operand(temp, StandardFrameConstants::kMarkerOffset), |
5265 Smi::FromInt(StackFrame::CONSTRUCT)); | 5265 Smi::FromInt(StackFrame::CONSTRUCT)); |
5266 } | 5266 } |
5267 | 5267 |
5268 | 5268 |
5269 void LCodeGen::EnsureSpaceForLazyDeopt(int space_needed) { | 5269 void LCodeGen::EnsureSpaceForLazyDeopt(int space_needed) { |
5270 if (info()->IsStub()) return; | 5270 if (info()->IsStub()) return; |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5470 FixedArray::kHeaderSize - kPointerSize)); | 5470 FixedArray::kHeaderSize - kPointerSize)); |
5471 __ bind(&done); | 5471 __ bind(&done); |
5472 } | 5472 } |
5473 | 5473 |
5474 | 5474 |
5475 #undef __ | 5475 #undef __ |
5476 | 5476 |
5477 } } // namespace v8::internal | 5477 } } // namespace v8::internal |
5478 | 5478 |
5479 #endif // V8_TARGET_ARCH_X64 | 5479 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |