Path: blob/master/libmeteor/include/ameteor/disassembler/argmulregisters.hpp
2 views
// Meteor - A Nintendo Gameboy Advance emulator1// Copyright (C) 2009-2011 Philippe Daouadi2//3// This program is free software: you can redistribute it and/or modify4// it under the terms of the GNU General Public License as published by5// the Free Software Foundation, either version 3 of the License, or6// (at your option) any later version.7//8// This program is distributed in the hope that it will be useful,9// but WITHOUT ANY WARRANTY; without even the implied warranty of10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the11// GNU General Public License for more details.12//13// You should have received a copy of the GNU General Public License14// along with this program. If not, see <http://www.gnu.org/licenses/>.1516#ifndef __ARG_MUL_REGISTERS_H__17#define __ARG_MUL_REGISTERS_H__1819#include "argument.hpp"2021#include <stdint.h>22#include <vector>2324namespace AMeteor25{26namespace Disassembler27{28enum SpecialRegister29{30SPREG_NONE = 0,31SPREG_LR = 1,32SPREG_PC = 233};3435class ArgMulRegisters : public Argument36{37public :38ArgMulRegisters (bool forceuser) :39m_lastreg(SPREG_NONE),40m_forceuser(forceuser)41{ }4243Argument* Clone () const;4445void AddRegister(uint8_t reg)46{47m_regs.push_back(reg);48}49void AddLastRegister(SpecialRegister reg)50{51m_lastreg = reg;52}5354std::string GetString () const;5556private :57typedef std::vector<uint8_t> Registers;5859Registers m_regs;60SpecialRegister m_lastreg;61bool m_forceuser;62};63}64}6566#endif676869