SBInstruction.cpp revision 24943d2ee8bfaa7cf5893e4709143924157a5c1e
124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- SBInstruction.cpp ---------------------------------------*- C++ -*-===//
224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//                     The LLVM Compiler Infrastructure
424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source
624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details.
724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===//
924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "lldb/API/SBInstruction.h"
1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "lldb/Core/Disassembler.h"
1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerusing namespace lldb;
1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerusing namespace lldb_private;
1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//SBInstruction::SBInstruction (lldb_private::Disassembler::Instruction *lldb_insn) :
1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//    m_lldb_object_sp (lldb_insn);
1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//{
2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//}
2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBInstruction::SBInstruction ()
2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{
2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}
2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBInstruction::~SBInstruction ()
2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{
2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}
2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//bool
3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//SBInstruction::IsValid()
3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//{
3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//    return (m_lldb_object_sp.get() != NULL);
3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//}
3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//size_t
3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//SBInstruction::GetByteSize ()
3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//{
3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//    if (IsValid())
4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//    {
4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//        return m_lldb_object_sp->GetByteSize();
4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//    }
4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//    return 0;
4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//}
4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//void
4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//SBInstruction::SetByteSize (size_T byte_size)
4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//{
4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//    if (IsValid ())
5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//    {
5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//        m_lldb_object_sp->SetByteSize (byte_size);
5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//    }
5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//}
5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//bool
5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//SBInstruction::DoesBranch ()
5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//{
5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//    if (IsValid ())
5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//    {
6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//        return m_lldb_object_sp->DoesBranch ();
6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//    }
6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//    return false;
6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//}
6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnervoid
6624943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSBInstruction::Print (FILE *out)
6724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{
6824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    if (out == NULL)
6924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner        return;
7024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
7124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //StreamFile out_strem (out);
7224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
7324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //m_lldb_object_sp->Dump (out, LLDB_INVALID_ADDRESS, NULL, 0);
7424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}
75