hppa.pat.h

Go to the documentation of this file.
00001 #ifndef __hppa_pat_H__
00002 #define __hppa_pat_H__
00003 class InstructionPatterns {
00004 private:
00005     static int R0;
00006     static int RP;
00007     static int SP;
00008     static int R31;
00009 public:
00010     static Logue* std_call(CSR& csr, ADDRESS& lc, int& addr);
00011     static Logue* gcc_frame(CSR& csr, ADDRESS& lc, int& locals);
00012     static Logue* gcc_frameless(CSR& csr, ADDRESS& lc, int& locals);
00013     static Logue* param_reloc1(CSR& csr, ADDRESS& lc, int& libstub, int& locals);
00014     static Logue* gcc_unframe(CSR& csr, ADDRESS& lc);
00015     static Logue* gcc_unframeless1(CSR& csr, ADDRESS& lc);
00016     static Logue* gcc_unframeless2(CSR& csr, ADDRESS& lc);
00017     static Logue* bare_ret(CSR& csr, ADDRESS& lc);
00018     static Logue* bare_ret_anulled(CSR& csr, ADDRESS& lc);
00019 private:
00020     static bool BL$c_br_nnull(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR);
00021     static bool BL$c_br_null(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR);
00022     static bool BV$c_br_nnull(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR);
00023     static bool BV$c_br_null(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR);
00024     static bool FSTDS$s_addr_im_r$c_s_addr_ma(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR, int& c, bool c_isVAR, int& d, bool d_isVAR);
00025     static bool LDO(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR, int& c, bool c_isVAR);
00026     static bool LDW$l_addr_16_old$c_l_addr_none(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR, int& c, bool c_isVAR, int& d, bool d_isVAR);
00027     static bool LDWM$l_addr_16_old$c_l_addr_none(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR, int& c, bool c_isVAR, int& d, bool d_isVAR);
00028     static bool LDWS$s_addr_im_r$c_s_addr_mb(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR, int& c, bool c_isVAR, int& d, bool d_isVAR);
00029     static bool LDWS$s_addr_im_r$c_s_addr_notm(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR, int& c, bool c_isVAR, int& d, bool d_isVAR);
00030     static bool OR$c_arith_w$c_c_nonneg(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR, int& c, bool c_isVAR, int& d, bool d_isVAR);
00031     static bool STW$l_addr_16_old$c_l_addr_none(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR, int& c, bool c_isVAR, int& d, bool d_isVAR);
00032     static bool STWM$l_addr_16_old$c_l_addr_none(ADDRESS& lc, int& a, bool a_isVAR, int& b, bool b_isVAR, int& c, bool c_isVAR, int& d, bool d_isVAR);
00033     static bool c_arith_w$c_c_nonneg(ADDRESS& lc, int& a, bool a_isVAR);
00034     static bool c_br_nnull(ADDRESS& lc);
00035     static bool c_br_null(ADDRESS& lc);
00036     static bool c_c_nonneg(ADDRESS& lc);
00037     static bool c_l_addr_none(ADDRESS& lc);
00038     static bool c_s_addr_ma(ADDRESS& lc);
00039     static bool c_s_addr_mb(ADDRESS& lc);
00040     static bool c_s_addr_notm(ADDRESS& lc);
00041     static bool l_addr_16_old$c_l_addr_none(ADDRESS& lc, int& a, bool a_isVAR);
00042     static bool s_addr_im_r$c_s_addr_ma(ADDRESS& lc, int& a, bool a_isVAR);
00043     static bool s_addr_im_r$c_s_addr_mb(ADDRESS& lc, int& a, bool a_isVAR);
00044     static bool s_addr_im_r$c_s_addr_notm(ADDRESS& lc, int& a, bool a_isVAR);
00045 };
00046 #endif

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