84 lines
3.9 KiB
C++
84 lines
3.9 KiB
C++
/*
|
|
* Panasonic MN102 (PanaXSeries) processor module for IDA.
|
|
* Copyright (c) 2000-2006 Konstantin Norvatoff, <konnor@bk.ru>
|
|
* Freeware.
|
|
*/
|
|
|
|
#include "pan.hpp"
|
|
|
|
const instruc_t Instructions[] =
|
|
{
|
|
{ "", 0 },
|
|
{ "ADD", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "ADDC", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "ADDNF", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "AND", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "ASR", CF_USE1|CF_CHG1 },
|
|
{ "BCC", CF_USE1|CF_JUMP },
|
|
{ "BCCX", CF_USE1|CF_JUMP },
|
|
{ "BCLR", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "BCS", CF_USE1|CF_JUMP },
|
|
{ "BCSX", CF_USE1|CF_JUMP },
|
|
{ "BEQ", CF_USE1|CF_JUMP },
|
|
{ "BEQX", CF_USE1|CF_JUMP },
|
|
{ "BGE", CF_USE1|CF_JUMP },
|
|
{ "BGEX", CF_USE1|CF_JUMP },
|
|
{ "BGT", CF_USE1|CF_JUMP },
|
|
{ "BGTX", CF_USE1|CF_JUMP },
|
|
{ "BHI", CF_USE1|CF_JUMP },
|
|
{ "BHIX", CF_USE1|CF_JUMP },
|
|
{ "BLE", CF_USE1|CF_JUMP },
|
|
{ "BLEX", CF_USE1|CF_JUMP },
|
|
{ "BLS", CF_USE1|CF_JUMP },
|
|
{ "BLSX", CF_USE1|CF_JUMP },
|
|
{ "BLT", CF_USE1|CF_JUMP },
|
|
{ "BLTX", CF_USE1|CF_JUMP },
|
|
{ "BNC", CF_USE1|CF_JUMP },
|
|
{ "BNCX", CF_USE1|CF_JUMP },
|
|
{ "BNE", CF_USE1|CF_JUMP },
|
|
{ "BNEX", CF_USE1|CF_JUMP },
|
|
{ "BNS", CF_USE1|CF_JUMP },
|
|
{ "BNSX", CF_USE1|CF_JUMP },
|
|
{ "BRA", CF_USE1|CF_JUMP|CF_STOP },
|
|
{ "BSET", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "BTST", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "BVC", CF_USE1|CF_JUMP },
|
|
{ "BVCX", CF_USE1|CF_JUMP },
|
|
{ "BVS", CF_USE1|CF_JUMP },
|
|
{ "BVSX", CF_USE1|CF_JUMP },
|
|
{ "CMP", CF_USE1|CF_USE2 },
|
|
{ "DIVU", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "EXT", CF_USE1 },
|
|
{ "EXTX", CF_USE1|CF_CHG1 },
|
|
{ "EXTXB", CF_USE1|CF_CHG1 },
|
|
{ "EXTXBU", CF_USE1|CF_CHG1 },
|
|
{ "EXTXU", CF_USE1|CF_CHG1 },
|
|
{ "JMP", CF_USE1|CF_JUMP|CF_STOP },
|
|
{ "JSR", CF_USE1|CF_CALL },
|
|
{ "LSR", CF_USE1|CF_CHG1 },
|
|
{ "MOV", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "MOVB", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "MOVBU", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "MOVX", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "MUL", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "MULQ", CF_USE1|CF_USE2 },
|
|
{ "MULQH", CF_USE1|CF_USE2 },
|
|
{ "MULQL", CF_USE1|CF_USE2 },
|
|
{ "MULU", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "NOP", 0 },
|
|
{ "NOT", CF_USE1|CF_CHG1 },
|
|
{ "OR", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "PXST", 0 },
|
|
{ "ROL", CF_USE1|CF_CHG1 },
|
|
{ "ROR", CF_USE1|CF_CHG1 },
|
|
{ "RTI", CF_STOP },
|
|
{ "RTS", CF_STOP },
|
|
{ "SUB", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "SUBC", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "TBNZ", CF_USE1|CF_USE2|CF_USE3|CF_JUMP },
|
|
{ "TBZ", CF_USE1|CF_USE2|CF_USE3|CF_JUMP },
|
|
{ "XOR", CF_USE1|CF_USE2|CF_CHG2 }
|
|
};
|
|
|
|
CASSERT(qnumber(Instructions) == mn102_last);
|