brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 2f12d8b Raw
58 lines · c
1//===-- DWARFLocationExpression.h -------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_DWARFLOCATIONEXPRESSION_H10#define LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_DWARFLOCATIONEXPRESSION_H11 12#include "lldb/lldb-forward.h"13#include "llvm/ADT/ArrayRef.h"14#include "llvm/DebugInfo/CodeView/CodeView.h"15#include <map>16 17namespace llvm {18class APSInt;19class StringRef;20namespace codeview {21class TypeIndex;22}23namespace pdb {24class TpiStream;25}26} // namespace llvm27namespace lldb_private {28namespace npdb {29struct MemberValLocation {30  uint16_t reg_id;31  uint16_t reg_offset;32  bool is_at_reg = true;33};34 35DWARFExpression36MakeEnregisteredLocationExpression(llvm::codeview::RegisterId reg,37                                   lldb::ModuleSP module);38 39DWARFExpression MakeRegRelLocationExpression(llvm::codeview::RegisterId reg,40                                             int32_t offset,41                                             lldb::ModuleSP module);42DWARFExpression MakeVFrameRelLocationExpression(llvm::StringRef fpo_program,43                                                int32_t offset,44                                                lldb::ModuleSP module);45DWARFExpression MakeGlobalLocationExpression(uint16_t section, uint32_t offset,46                                             lldb::ModuleSP module);47DWARFExpression MakeConstantLocationExpression(48    llvm::codeview::TypeIndex underlying_ti, llvm::pdb::TpiStream &tpi,49    const llvm::APSInt &constant, lldb::ModuleSP module);50DWARFExpression MakeEnregisteredLocationExpressionForComposite(51    const std::map<uint64_t, MemberValLocation> &offset_to_location,52    std::map<uint64_t, size_t> &offset_to_size, size_t total_size,53    lldb::ModuleSP module);54} // namespace npdb55} // namespace lldb_private56 57#endif58