%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
// Copyright 2016 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "src/diagnostics/eh-frame.h" #include "src/zone/zone-containers.h" namespace v8 { namespace internal { static const int kRaxDwarfCode = 0; static const int kRbpDwarfCode = 6; static const int kRspDwarfCode = 7; static const int kRipDwarfCode = 16; const int EhFrameConstants::kCodeAlignmentFactor = 1; const int EhFrameConstants::kDataAlignmentFactor = -8; void EhFrameWriter::WriteReturnAddressRegisterCode() { WriteULeb128(kRipDwarfCode); } void EhFrameWriter::WriteInitialStateInCie() { SetBaseAddressRegisterAndOffset(rsp, kSystemPointerSize); // x64 rip (r16) has no Register instance associated. RecordRegisterSavedToStack(kRipDwarfCode, -kSystemPointerSize); } // static int EhFrameWriter::RegisterToDwarfCode(Register name) { switch (name.code()) { case kRegCode_rbp: return kRbpDwarfCode; case kRegCode_rsp: return kRspDwarfCode; case kRegCode_rax: return kRaxDwarfCode; default: UNIMPLEMENTED(); } } #ifdef ENABLE_DISASSEMBLER // static const char* EhFrameDisassembler::DwarfRegisterCodeToString(int code) { switch (code) { case kRbpDwarfCode: return "rbp"; case kRspDwarfCode: return "rsp"; case kRipDwarfCode: return "rip"; default: UNIMPLEMENTED(); } } #endif } // namespace internal } // namespace v8