blob: 3c0d65ef842c2de0e04915fca15cbfdb5e481e72 [file] [log] [blame]
Johnny Chen5cb6cab2011-07-19 22:41:47 +00001//===-- SWIG Interface for SBInstruction ------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include <stdio.h>
11
12// There's a lot to be fixed here, but need to wait for underlying insn implementation
13// to be revised & settle down first.
14
15namespace lldb {
16
17class SBInstruction
18{
19public:
20
21 SBInstruction ();
22
23 SBInstruction (const SBInstruction &rhs);
24
25 ~SBInstruction ();
26
27 bool
28 IsValid();
29
Greg Clayton7fb14302012-04-13 00:07:34 +000030 lldb::SBAddress
Johnny Chen5cb6cab2011-07-19 22:41:47 +000031 GetAddress();
32
Greg Clayton7fb14302012-04-13 00:07:34 +000033 lldb::AddressClass
34 GetAddressClass ();
35
Greg Clayton23b8abb2011-09-26 07:11:27 +000036 const char *
Greg Claytond9b44252011-09-27 00:58:45 +000037 GetMnemonic (lldb::SBTarget target);
Greg Clayton23b8abb2011-09-26 07:11:27 +000038
39 const char *
Greg Claytond9b44252011-09-27 00:58:45 +000040 GetOperands (lldb::SBTarget target);
Greg Clayton23b8abb2011-09-26 07:11:27 +000041
42 const char *
43 GetComment (lldb::SBTarget target);
44
45 lldb::SBData
46 GetData (lldb::SBTarget target);
47
Johnny Chen5cb6cab2011-07-19 22:41:47 +000048 size_t
49 GetByteSize ();
50
51 bool
52 DoesBranch ();
53
54 void
55 Print (FILE *out);
56
57 bool
58 GetDescription (lldb::SBStream &description);
59
60 bool
61 EmulateWithFrame (lldb::SBFrame &frame, uint32_t evaluate_options);
62
63 bool
64 DumpEmulation (const char * triple); // triple is to specify the architecture, e.g. 'armv6' or 'arm-apple-darwin'
65
66 bool
67 TestEmulation (lldb::SBStream &output_stream, const char *test_file);
Greg Clayton1b925202012-01-29 06:07:39 +000068
69 %pythoncode %{
Greg Claytonb302dff2012-02-01 08:09:32 +000070 def __mnemonic_property__ (self):
71 return self.GetMnemonic (target)
72 def __operands_property__ (self):
73 return self.GetOperands (target)
74 def __comment_property__ (self):
75 return self.GetComment (target)
76 def __file_addr_property__ (self):
77 return self.GetAddress ().GetFileAddress()
78 def __load_adrr_property__ (self):
79 return self.GetComment (target)
80
81 __swig_getmethods__["mnemonic"] = __mnemonic_property__
82 if _newclass: x = property(__mnemonic_property__, None)
83
84 __swig_getmethods__["operands"] = __operands_property__
85 if _newclass: x = property(__operands_property__, None)
86
87 __swig_getmethods__["comment"] = __comment_property__
88 if _newclass: x = property(__comment_property__, None)
89
Greg Clayton1b925202012-01-29 06:07:39 +000090 __swig_getmethods__["addr"] = GetAddress
91 if _newclass: x = property(GetAddress, None)
92
93 __swig_getmethods__["size"] = GetByteSize
94 if _newclass: x = property(GetByteSize, None)
95
96 __swig_getmethods__["is_branch"] = DoesBranch
97 if _newclass: x = property(DoesBranch, None)
98 %}
99
100
Johnny Chen5cb6cab2011-07-19 22:41:47 +0000101};
102
103} // namespace lldb