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