blob: 01cebb1590c29f1c8908b53e74569a603b281990 [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
30 SBAddress
31 GetAddress();
32
Greg Clayton23b8abb2011-09-26 07:11:27 +000033 const char *
Greg Claytond9b44252011-09-27 00:58:45 +000034 GetMnemonic (lldb::SBTarget target);
Greg Clayton23b8abb2011-09-26 07:11:27 +000035
36 const char *
Greg Claytond9b44252011-09-27 00:58:45 +000037 GetOperands (lldb::SBTarget target);
Greg Clayton23b8abb2011-09-26 07:11:27 +000038
39 const char *
40 GetComment (lldb::SBTarget target);
41
42 lldb::SBData
43 GetData (lldb::SBTarget target);
44
Johnny Chen5cb6cab2011-07-19 22:41:47 +000045 size_t
46 GetByteSize ();
47
48 bool
49 DoesBranch ();
50
51 void
52 Print (FILE *out);
53
54 bool
55 GetDescription (lldb::SBStream &description);
56
57 bool
58 EmulateWithFrame (lldb::SBFrame &frame, uint32_t evaluate_options);
59
60 bool
61 DumpEmulation (const char * triple); // triple is to specify the architecture, e.g. 'armv6' or 'arm-apple-darwin'
62
63 bool
64 TestEmulation (lldb::SBStream &output_stream, const char *test_file);
Greg Clayton1b925202012-01-29 06:07:39 +000065
66 %pythoncode %{
Greg Claytonb302dff2012-02-01 08:09:32 +000067 def __mnemonic_property__ (self):
68 return self.GetMnemonic (target)
69 def __operands_property__ (self):
70 return self.GetOperands (target)
71 def __comment_property__ (self):
72 return self.GetComment (target)
73 def __file_addr_property__ (self):
74 return self.GetAddress ().GetFileAddress()
75 def __load_adrr_property__ (self):
76 return self.GetComment (target)
77
78 __swig_getmethods__["mnemonic"] = __mnemonic_property__
79 if _newclass: x = property(__mnemonic_property__, None)
80
81 __swig_getmethods__["operands"] = __operands_property__
82 if _newclass: x = property(__operands_property__, None)
83
84 __swig_getmethods__["comment"] = __comment_property__
85 if _newclass: x = property(__comment_property__, None)
86
Greg Clayton1b925202012-01-29 06:07:39 +000087 __swig_getmethods__["addr"] = GetAddress
88 if _newclass: x = property(GetAddress, None)
89
90 __swig_getmethods__["size"] = GetByteSize
91 if _newclass: x = property(GetByteSize, None)
92
93 __swig_getmethods__["is_branch"] = DoesBranch
94 if _newclass: x = property(DoesBranch, None)
95 %}
96
97
Johnny Chen5cb6cab2011-07-19 22:41:47 +000098};
99
100} // namespace lldb