mc68k.pat.h

Go to the documentation of this file.
00001 #ifndef __mc68k_pat_H__
00002 #define __mc68k_pat_H__
00003 class InstructionPatterns {
00004 private:
00005     static int SP;
00006     static int FP;
00007 public:
00008     static Logue* std_call(CSR& csr, ADDRESS& lc, int& addr);
00009     static Logue* near_call(CSR& csr, ADDRESS& lc, int& addr);
00010     static Logue* pea_add_rts(CSR& csr, ADDRESS& lc, int& d32);
00011     static Logue* pea_pea_add_rts(CSR& csr, ADDRESS& lc, int& d32);
00012     static Logue* trap_syscall(CSR& csr, ADDRESS& lc, int& d16);
00013     static Logue* std_link(CSR& csr, ADDRESS& lc, int& locals);
00014     static Logue* link_save(CSR& csr, ADDRESS& lc, int& locals, int& d16);
00015     static Logue* link_save1(CSR& csr, ADDRESS& lc, int& locals, int& reg);
00016     static Logue* push_lea(CSR& csr, ADDRESS& lc, int& locals, int& reg);
00017     static Logue* bare_ret(CSR& csr, ADDRESS& lc);
00018     static Logue* std_ret(CSR& csr, ADDRESS& lc);
00019     static Logue* rest_ret(CSR& csr, ADDRESS& lc, int& d16);
00020     static Logue* rest1_ret(CSR& csr, ADDRESS& lc, int& reg);
00021     static Logue* pop_ret(CSR& csr, ADDRESS& lc, int& reg);
00022     static Logue* clear_stack(CSR& csr, ADDRESS& lc, int& n);
00023 private:
00024     static bool Aline(ADDRESS& lc, int& a, bool a_isVAR);
00025     static bool addaw_d16(ADDRESS& lc, int& a, bool a_isVAR);
00026     static bool addil$daIndirect(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR);
00027     static bool bsr(ADDRESS& lc, int& a, bool a_isVAR);
00028     static bool call_(ADDRESS& lc, int& a, bool a_isVAR);
00029     static bool daIndirect(ADDRESS& lc, int& a, bool a_isVAR);
00030     static bool daPostInc(ADDRESS& lc, int& a, bool a_isVAR);
00031     static bool daPreDec(ADDRESS& lc, int& a, bool a_isVAR);
00032     static bool leaSpSp(ADDRESS& lc, int& a, bool a_isVAR);
00033     static bool link(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR);
00034     static bool movemrl$daPostInc(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR);
00035     static bool moverml$daPreDec(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR);
00036     static bool peaPcDisp(ADDRESS& lc, int& a, bool a_isVAR);
00037     static bool popreg(ADDRESS& lc, int& a, bool a_isVAR);
00038     static bool pushreg(ADDRESS& lc, int& a, bool a_isVAR);
00039     static bool rts(ADDRESS& lc);
00040     static bool trap(ADDRESS& lc, int& a, bool a_isVAR);
00041     static bool unlk(ADDRESS& lc, int& a, bool a_isVAR);
00042 };
00043 #endif

Generated on Tue Sep 19 21:18:25 2006 for Boomerang by  doxygen 1.4.6