From afb29b19c2977fe58478ae3df2d6ec7d3d506feb Mon Sep 17 00:00:00 2001 From: John Reiser Date: Sun, 20 Feb 2005 22:48:46 +0000 Subject: [PATCH] PowerPC branch [and call] trick committer: jreiser 1108939726 +0000 --- src/filteri.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/filteri.cpp b/src/filteri.cpp index 5b4c130b..c98c4e75 100644 --- a/src/filteri.cpp +++ b/src/filteri.cpp @@ -145,6 +145,19 @@ #undef COND_CALL +/************************************************************************* +// PowerPC branch [incl. call] trick +**************************************************************************/ + +#define COND(b,x) (18==(get_be32(b+x)>>26)) +#define F f_ppcbxx +#define U u_ppcbxx +#include "filter/ppcbxx.h" +#define F s_ppcbxx +#include "filter/ppcbxx.h" +#undef COND + + /************************************************************************* // database for use in class Filter **************************************************************************/ @@ -230,6 +243,9 @@ const FilterImp::FilterEntry FilterImp::filters[] = { { 0xb1,99, 0, f_sub32_2, u_sub32_2, s_sub32_2 }, { 0xb2,99, 0, f_sub32_3, u_sub32_3, s_sub32_3 }, { 0xb3,99, 0, f_sub32_4, u_sub32_4, s_sub32_4 }, + + // PowerPC call trick + { 0xd0, 8, 0x01000000, f_ppcbxx, u_ppcbxx, s_ppcbxx }, }; const int FilterImp::n_filters = TABLESIZE(filters);