ValueObjectRegister.h revision 3e8388ccdc30231f86521e0d2657f80548e3daed
143dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis//===-- ValueObjectRegister.h -----------------------------------*- C++ -*-===//
243dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis//
343dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis//                     The LLVM Compiler Infrastructure
443dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis//
543dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis// This file is distributed under the University of Illinois Open Source
643dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis// License. See LICENSE.TXT for details.
743dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis//
843dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis//===----------------------------------------------------------------------===//
943dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis
1043dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#ifndef liblldb_ValueObjectRegister_h_
1143dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#define liblldb_ValueObjectRegister_h_
1243dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis
1343dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis// C Includes
1443dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis// C++ Includes
1543dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis// Other libraries and framework includes
1643dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis// Project includes
172e471a3e476396be1ddca4ab8b9df721bcfc9437Argyrios Kyrtzidis#include "lldb/lldb-private.h"
1843dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "lldb/Core/RegisterValue.h"
199fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis#include "lldb/Core/ValueObject.h"
20769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
2135bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremeneknamespace lldb_private {
229fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
2343dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis//----------------------------------------------------------------------
2443dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis// A ValueObject that contains a root variable that may or may not
259fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis// have children.
26769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis//----------------------------------------------------------------------
27e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidisclass ValueObjectRegisterContext : public ValueObject
2843dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis{
2943dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidispublic:
3043dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis
319fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    virtual
329fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    ~ValueObjectRegisterContext();
33769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
34769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    virtual size_t
35769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    GetByteSize();
36e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis
37769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    virtual lldb::ValueType
3830726c6baee1417307236e854f1474fdb3cedb98Argyrios Kyrtzidis    GetValueType () const
39769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    {
40af5800a1e287990bb547e052f257adeeae5ab476Argyrios Kyrtzidis        return lldb::eValueTypeRegisterSet;
41cc05d511b26ac6dc80fcbcc78ac305d2755aa0b9Argyrios Kyrtzidis    }
42183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis
43183ff98f425d470c2a0276880aaf43496c9dad14Argyrios Kyrtzidis    virtual ConstString
44769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    GetTypeName();
45e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis
46e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis    virtual ConstString
47e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis    GetQualifiedTypeName();
48e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis
49e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis    virtual uint32_t
50e1bfb7ae0dd0762c88e1fd94746e973c37f2e04eArgyrios Kyrtzidis    CalculateNumChildren();
514d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis
524d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis    virtual ValueObject *
5335bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremenek    CreateChildAtIndex (uint32_t idx, bool synthetic_array_member, int32_t synthetic_index);
5435bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremenek
5535bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremenekprotected:
5635bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremenek    virtual bool
5735bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremenek    UpdateValue ();
5835bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremenek
5935bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremenek    virtual clang::ASTContext *
6035bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremenek    GetClangASTImpl ();
6135bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremenek
6235bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremenek    virtual lldb::clang_type_t
6335bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremenek    GetClangTypeImpl ();
6435bdbf40624beba3fc00cb72ab444659939c1a6bTed Kremenek
654d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis    lldb::RegisterContextSP m_reg_ctx_sp;
664d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis
674d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidisprivate:
68769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    ValueObjectRegisterContext (ValueObject &parent, lldb::RegisterContextSP &reg_ctx_sp);
69769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    //------------------------------------------------------------------
70769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    // For ValueObject only
71769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    //------------------------------------------------------------------
724d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis    DISALLOW_COPY_AND_ASSIGN (ValueObjectRegisterContext);
73769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis};
74769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
754d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidisclass ValueObjectRegisterSet : public ValueObject
764d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis{
774d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidispublic:
78769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    static lldb::ValueObjectSP
79769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    Create (ExecutionContextScope *exe_scope, lldb::RegisterContextSP &reg_ctx_sp, uint32_t set_idx);
80769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
81769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    virtual
824d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis    ~ValueObjectRegisterSet();
83769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
84769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    virtual size_t
854d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis    GetByteSize();
864d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis
874d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis    virtual lldb::ValueType
88769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    GetValueType () const
89769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    {
90769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis        return lldb::eValueTypeRegisterSet;
91769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    }
924d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis
93769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    virtual ConstString
94769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    GetTypeName();
954d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis
964d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis    virtual ConstString
974d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis    GetQualifiedTypeName();
98769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
99769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    virtual uint32_t
100769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    CalculateNumChildren();
101769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
1024d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis    virtual ValueObject *
103769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    CreateChildAtIndex (uint32_t idx, bool synthetic_array_member, int32_t synthetic_index);
10443dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis
10543dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis    virtual lldb::ValueObjectSP
1062e471a3e476396be1ddca4ab8b9df721bcfc9437Argyrios Kyrtzidis    GetChildMemberWithName (const ConstString &name, bool can_create);
1072e471a3e476396be1ddca4ab8b9df721bcfc9437Argyrios Kyrtzidis
10843dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis    virtual uint32_t
1092e471a3e476396be1ddca4ab8b9df721bcfc9437Argyrios Kyrtzidis    GetIndexOfChildWithName (const ConstString &name);
1109fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
1119fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
112d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidisprotected:
113d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis    virtual bool
114deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis    UpdateValue ();
115deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis
1162e471a3e476396be1ddca4ab8b9df721bcfc9437Argyrios Kyrtzidis    virtual clang::ASTContext *
1172e471a3e476396be1ddca4ab8b9df721bcfc9437Argyrios Kyrtzidis    GetClangASTImpl ();
1189fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
1193fe71f445f76003649b5da24209e80225a7ee74fArgyrios Kyrtzidis    virtual lldb::clang_type_t
1204d840e9ac4d8e9baa9459ca3dd7ab14ae884a80fArgyrios Kyrtzidis    GetClangTypeImpl ();
1219fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
1229fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    lldb::RegisterContextSP m_reg_ctx_sp;
1239fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    const RegisterSet *m_reg_set;
1249fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    uint32_t m_reg_set_idx;
1259fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
1269fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisprivate:
1273fe71f445f76003649b5da24209e80225a7ee74fArgyrios Kyrtzidis    friend class ValueObjectRegisterContext;
1283fe71f445f76003649b5da24209e80225a7ee74fArgyrios Kyrtzidis    ValueObjectRegisterSet (ExecutionContextScope *exe_scope, lldb::RegisterContextSP &reg_ctx_sp, uint32_t set_idx);
1299fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
1303fe71f445f76003649b5da24209e80225a7ee74fArgyrios Kyrtzidis    //------------------------------------------------------------------
131deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis    // For ValueObject only
1323fe71f445f76003649b5da24209e80225a7ee74fArgyrios Kyrtzidis    //------------------------------------------------------------------
1333fe71f445f76003649b5da24209e80225a7ee74fArgyrios Kyrtzidis    DISALLOW_COPY_AND_ASSIGN (ValueObjectRegisterSet);
1343fe71f445f76003649b5da24209e80225a7ee74fArgyrios Kyrtzidis};
1353fe71f445f76003649b5da24209e80225a7ee74fArgyrios Kyrtzidis
1369fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisclass ValueObjectRegister : public ValueObject
137769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis{
1389fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidispublic:
1393fe71f445f76003649b5da24209e80225a7ee74fArgyrios Kyrtzidis    static lldb::ValueObjectSP
1403fe71f445f76003649b5da24209e80225a7ee74fArgyrios Kyrtzidis    Create (ExecutionContextScope *exe_scope, lldb::RegisterContextSP &reg_ctx_sp, uint32_t reg_num);
1419fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
14243dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis    virtual
1439fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    ~ValueObjectRegister();
144769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
1459fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    virtual size_t
1469fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    GetByteSize();
1479fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
1489fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    virtual lldb::ValueType
1499fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    GetValueType () const
1509fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    {
1519fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis        return lldb::eValueTypeRegister;
1529fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    }
1539fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
1549fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    virtual ConstString
1559fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    GetTypeName();
156769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
157769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    virtual uint32_t
158769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    CalculateNumChildren();
159769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
160769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    virtual bool
161cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidis    SetValueFromCString (const char *value_str, Error& error);
162769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
163769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    virtual bool
164769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    ResolveValue (Scalar &scalar);
165769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
166769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    virtual void
167769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    GetExpressionPath (Stream &s, bool qualify_cxx_base_classes, GetExpressionPathFormat epformat = eGetExpressionPathFormatDereferencePointers);
168769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
169cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidisprotected:
170769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    virtual bool
171769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    UpdateValue ();
172769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
173769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    virtual clang::ASTContext *
174769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    GetClangASTImpl ();
175769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
176769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    virtual lldb::clang_type_t
177cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidis    GetClangTypeImpl ();
178769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
179769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    lldb::RegisterContextSP m_reg_ctx_sp;
180769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    RegisterInfo m_reg_info;
181769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    RegisterValue m_reg_value;
182cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidis    ConstString m_type_name;
183769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    void *m_clang_type;
184769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
185769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidisprivate:
186769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    void
187769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    ConstructObject (uint32_t reg_num);
188769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
189769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    friend class ValueObjectRegisterSet;
190cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidis    ValueObjectRegister (ValueObject &parent, lldb::RegisterContextSP &reg_ctx_sp, uint32_t reg_num);
191769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    ValueObjectRegister (ExecutionContextScope *exe_scope, lldb::RegisterContextSP &reg_ctx_sp, uint32_t reg_num);
192769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
193769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    //------------------------------------------------------------------
194769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    // For ValueObject only
195769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    //------------------------------------------------------------------
196769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    DISALLOW_COPY_AND_ASSIGN (ValueObjectRegister);
197769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis};
198cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidis
199cd50e136ad7dc721822f5e6350769a37c216612dArgyrios Kyrtzidis} // namespace lldb_private
200769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
201769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis#endif  // liblldb_ValueObjectRegister_h_
202769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis