Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libmeteor/include/ameteor/disassembler/argshift.hpp
2 views
1
// Meteor - A Nintendo Gameboy Advance emulator
2
// Copyright (C) 2009-2011 Philippe Daouadi
3
//
4
// This program is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// This program is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17
#ifndef __ARG_SHIFT_H__
18
#define __ARG_SHIFT_H__
19
20
#include "argument.hpp"
21
22
namespace AMeteor
23
{
24
namespace Disassembler
25
{
26
enum ShiftType
27
{
28
SHIFT_LSL = 0,
29
SHIFT_LSR,
30
SHIFT_ASR,
31
SHIFT_ROR,
32
SHIFT_RRX
33
};
34
35
class ArgShift : public Argument
36
{
37
public :
38
ArgShift (const Argument& arg1, const Argument& arg2,
39
ShiftType type, bool memory);
40
ArgShift (const ArgShift& arg);
41
~ArgShift ();
42
43
Argument* Clone () const;
44
45
std::string GetString () const;
46
47
private :
48
const Argument* m_arg1;
49
const Argument* m_arg2;
50
ShiftType m_type;
51
bool m_memory;
52
};
53
}
54
}
55
56
#endif
57
58