notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
get some gp2x stuff out of the way for others
[picodrive.git]
/
cpu
/
fame
/
famec_opcodes.h
diff --git
a/cpu/fame/famec_opcodes.h
b/cpu/fame/famec_opcodes.h
index
ecbc056
..
c690b45
100644
(file)
--- a/
cpu/fame/famec_opcodes.h
+++ b/
cpu/fame/famec_opcodes.h
@@
-1,4
+1,10
@@
+#ifdef PICODRIVE_HACK
+#define NOT_POLLING g_m68kcontext->not_polling = 1;
+#else
+#define NOT_POLLING
+#endif
+
// ORI
OPCODE(0x0000)
{
// ORI
OPCODE(0x0000)
{
@@
-3826,7
+3832,7
@@
OPCODE(0x083A)
FETCH_BYTE(src);
src = 1 << (src & 7);
FETCH_BYTE(src);
src = 1 << (src & 7);
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, res)
PC++;
PRE_IO
READ_BYTE_F(adr, res)
@@
-3843,7
+3849,7
@@
OPCODE(0x083B)
FETCH_BYTE(src);
src = 1 << (src & 7);
FETCH_BYTE(src);
src = 1 << (src & 7);
- adr = (u
32
)(PC) - BasePC;
+ adr = (u
ptr
)(PC) - BasePC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
@@
-4572,7
+4578,7
@@
OPCODE(0x013A)
src = DREGu8((Opcode >> 9) & 7);
src = 1 << (src & 7);
src = DREGu8((Opcode >> 9) & 7);
src = 1 << (src & 7);
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, res)
PC++;
PRE_IO
READ_BYTE_F(adr, res)
@@
-4589,7
+4595,7
@@
OPCODE(0x013B)
src = DREGu8((Opcode >> 9) & 7);
src = 1 << (src & 7);
src = DREGu8((Opcode >> 9) & 7);
src = 1 << (src & 7);
- adr = (u
32
)(PC) - BasePC;
+ adr = (u
ptr
)(PC) - BasePC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
@@
-7116,7
+7122,7
@@
OPCODE(0x103A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, res)
PC++;
PRE_IO
READ_BYTE_F(adr, res)
@@
-7135,7
+7141,7
@@
OPCODE(0x10BA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, res)
PC++;
PRE_IO
READ_BYTE_F(adr, res)
@@
-7155,7
+7161,7
@@
OPCODE(0x10FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, res)
PC++;
PRE_IO
READ_BYTE_F(adr, res)
@@
-7176,7
+7182,7
@@
OPCODE(0x113A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, res)
PC++;
PRE_IO
READ_BYTE_F(adr, res)
@@
-7197,7
+7203,7
@@
OPCODE(0x117A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, res)
PC++;
PRE_IO
READ_BYTE_F(adr, res)
@@
-7218,7
+7224,7
@@
OPCODE(0x11BA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, res)
PC++;
PRE_IO
READ_BYTE_F(adr, res)
@@
-7239,7
+7245,7
@@
OPCODE(0x11FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, res)
PC++;
PRE_IO
READ_BYTE_F(adr, res)
@@
-7259,7
+7265,7
@@
OPCODE(0x13FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, res)
PC++;
PRE_IO
READ_BYTE_F(adr, res)
@@
-7279,7
+7285,7
@@
OPCODE(0x1EFA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, res)
PC++;
PRE_IO
READ_BYTE_F(adr, res)
@@
-7300,7
+7306,7
@@
OPCODE(0x1F3A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, res)
PC++;
PRE_IO
READ_BYTE_F(adr, res)
@@
-7321,7
+7327,7
@@
OPCODE(0x103B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = (u
32
)(PC) - BasePC;
+ adr = (u
ptr
)(PC) - BasePC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
@@
-7340,7
+7346,7
@@
OPCODE(0x10BB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = (u
32
)(PC) - BasePC;
+ adr = (u
ptr
)(PC) - BasePC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
@@
-7360,7
+7366,7
@@
OPCODE(0x10FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = (u
32
)(PC) - BasePC;
+ adr = (u
ptr
)(PC) - BasePC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
@@
-7381,7
+7387,7
@@
OPCODE(0x113B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = (u
32
)(PC) - BasePC;
+ adr = (u
ptr
)(PC) - BasePC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
@@
-7402,7
+7408,7
@@
OPCODE(0x117B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = (u
32
)(PC) - BasePC;
+ adr = (u
ptr
)(PC) - BasePC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
@@
-7423,7
+7429,7
@@
OPCODE(0x11BB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = (u
32
)(PC) - BasePC;
+ adr = (u
ptr
)(PC) - BasePC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
@@
-7444,7
+7450,7
@@
OPCODE(0x11FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = (u
32
)(PC) - BasePC;
+ adr = (u
ptr
)(PC) - BasePC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
@@
-7464,7
+7470,7
@@
OPCODE(0x13FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = (u
32
)(PC) - BasePC;
+ adr = (u
ptr
)(PC) - BasePC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
@@
-7484,7
+7490,7
@@
OPCODE(0x1EFB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = (u
32
)(PC) - BasePC;
+ adr = (u
ptr
)(PC) - BasePC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
@@
-7505,7
+7511,7
@@
OPCODE(0x1F3B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = (u
32
)(PC) - BasePC;
+ adr = (u
ptr
)(PC) - BasePC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, res)
@@
-9890,7
+9896,7
@@
OPCODE(0x203A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, res)
PC++;
PRE_IO
READ_LONG_F(adr, res)
@@
-9909,7
+9915,7
@@
OPCODE(0x20BA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, res)
PC++;
PRE_IO
READ_LONG_F(adr, res)
@@
-9929,7
+9935,7
@@
OPCODE(0x20FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, res)
PC++;
PRE_IO
READ_LONG_F(adr, res)
@@
-9950,7
+9956,7
@@
OPCODE(0x213A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, res)
PC++;
PRE_IO
READ_LONG_F(adr, res)
@@
-9971,7
+9977,7
@@
OPCODE(0x217A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, res)
PC++;
PRE_IO
READ_LONG_F(adr, res)
@@
-9992,7
+9998,7
@@
OPCODE(0x21BA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, res)
PC++;
PRE_IO
READ_LONG_F(adr, res)
@@
-10013,7
+10019,7
@@
OPCODE(0x21FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, res)
PC++;
PRE_IO
READ_LONG_F(adr, res)
@@
-10033,7
+10039,7
@@
OPCODE(0x23FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, res)
PC++;
PRE_IO
READ_LONG_F(adr, res)
@@
-10053,7
+10059,7
@@
OPCODE(0x2EFA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, res)
PC++;
PRE_IO
READ_LONG_F(adr, res)
@@
-10074,7
+10080,7
@@
OPCODE(0x2F3A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, res)
PC++;
PRE_IO
READ_LONG_F(adr, res)
@@
-10095,7
+10101,7
@@
OPCODE(0x203B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
@@
-10114,7
+10120,7
@@
OPCODE(0x20BB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
@@
-10134,7
+10140,7
@@
OPCODE(0x20FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
@@
-10155,7
+10161,7
@@
OPCODE(0x213B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
@@
-10176,7
+10182,7
@@
OPCODE(0x217B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
@@
-10197,7
+10203,7
@@
OPCODE(0x21BB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
@@
-10218,7
+10224,7
@@
OPCODE(0x21FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
@@
-10238,7
+10244,7
@@
OPCODE(0x23FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
@@
-10258,7
+10264,7
@@
OPCODE(0x2EFB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
@@
-10279,7
+10285,7
@@
OPCODE(0x2F3B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, res)
@@
-11017,7
+11023,7
@@
OPCODE(0x207A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READSX_LONG_F(adr, res)
PC++;
PRE_IO
READSX_LONG_F(adr, res)
@@
-11032,7
+11038,7
@@
OPCODE(0x207B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READSX_LONG_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READSX_LONG_F(adr, res)
@@
-12859,7
+12865,7
@@
OPCODE(0x303A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, res)
PC++;
PRE_IO
READ_WORD_F(adr, res)
@@
-12878,7
+12884,7
@@
OPCODE(0x30BA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, res)
PC++;
PRE_IO
READ_WORD_F(adr, res)
@@
-12898,7
+12904,7
@@
OPCODE(0x30FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, res)
PC++;
PRE_IO
READ_WORD_F(adr, res)
@@
-12919,7
+12925,7
@@
OPCODE(0x313A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, res)
PC++;
PRE_IO
READ_WORD_F(adr, res)
@@
-12940,7
+12946,7
@@
OPCODE(0x317A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, res)
PC++;
PRE_IO
READ_WORD_F(adr, res)
@@
-12961,7
+12967,7
@@
OPCODE(0x31BA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, res)
PC++;
PRE_IO
READ_WORD_F(adr, res)
@@
-12982,7
+12988,7
@@
OPCODE(0x31FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, res)
PC++;
PRE_IO
READ_WORD_F(adr, res)
@@
-13002,7
+13008,7
@@
OPCODE(0x33FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, res)
PC++;
PRE_IO
READ_WORD_F(adr, res)
@@
-13022,7
+13028,7
@@
OPCODE(0x3EFA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, res)
PC++;
PRE_IO
READ_WORD_F(adr, res)
@@
-13043,7
+13049,7
@@
OPCODE(0x3F3A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, res)
PC++;
PRE_IO
READ_WORD_F(adr, res)
@@
-13064,7
+13070,7
@@
OPCODE(0x303B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
@@
-13083,7
+13089,7
@@
OPCODE(0x30BB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
@@
-13103,7
+13109,7
@@
OPCODE(0x30FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
@@
-13124,7
+13130,7
@@
OPCODE(0x313B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
@@
-13145,7
+13151,7
@@
OPCODE(0x317B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
@@
-13166,7
+13172,7
@@
OPCODE(0x31BB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
@@
-13187,7
+13193,7
@@
OPCODE(0x31FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
@@
-13207,7
+13213,7
@@
OPCODE(0x33FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
@@
-13227,7
+13233,7
@@
OPCODE(0x3EFB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
@@
-13248,7
+13254,7
@@
OPCODE(0x3F3B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
@@
-13986,7
+13992,7
@@
OPCODE(0x307A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READSX_WORD_F(adr, res)
PC++;
PRE_IO
READSX_WORD_F(adr, res)
@@
-14001,7
+14007,7
@@
OPCODE(0x307B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READSX_WORD_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READSX_WORD_F(adr, res)
@@
-16479,7
+16485,7
@@
OPCODE(0x44FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, res)
PC++;
PRE_IO
READ_WORD_F(adr, res)
@@
-16494,7
+16500,7
@@
OPCODE(0x44FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
@@
-16786,7
+16792,7
@@
OPCODE(0x46FA)
if (flag_S)
{
if (flag_S)
{
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, res)
PC++;
PRE_IO
READ_WORD_F(adr, res)
@@
-16816,7
+16822,7
@@
OPCODE(0x46FB)
if (flag_S)
{
if (flag_S)
{
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, res)
@@
-17250,7
+17256,7
@@
OPCODE(0x487A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
PUSH_32_F(adr)
PC++;
PRE_IO
PUSH_32_F(adr)
@@
-17264,7
+17270,7
@@
OPCODE(0x487B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
PUSH_32_F(adr)
DECODE_EXT_WORD
PRE_IO
PUSH_32_F(adr)
@@
-18760,7
+18766,7
@@
OPCODE(0x4CBA)
s32 *psrc;
FETCH_WORD(res);
s32 *psrc;
FETCH_WORD(res);
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
psrc = &DREGs32(0);
dst = adr;
PC++;
psrc = &DREGs32(0);
dst = adr;
@@
-18792,7
+18798,7
@@
OPCODE(0x4CBB)
s32 *psrc;
FETCH_WORD(res);
s32 *psrc;
FETCH_WORD(res);
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
psrc = &DREGs32(0);
dst = adr;
DECODE_EXT_WORD
psrc = &DREGs32(0);
dst = adr;
@@
-19037,7
+19043,7
@@
OPCODE(0x4CFA)
u32 *psrc;
FETCH_WORD(res);
u32 *psrc;
FETCH_WORD(res);
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
psrc = &DREGu32(0);
dst = adr;
PC++;
psrc = &DREGu32(0);
dst = adr;
@@
-19069,7
+19075,7
@@
OPCODE(0x4CFB)
u32 *psrc;
FETCH_WORD(res);
u32 *psrc;
FETCH_WORD(res);
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
psrc = &DREGu32(0);
dst = adr;
DECODE_EXT_WORD
psrc = &DREGu32(0);
dst = adr;
@@
-19263,8
+19269,7
@@
OPCODE(0x4E72)
ASP = res;
}
m68kcontext.execinfo |= FM68K_HALTED;
ASP = res;
}
m68kcontext.execinfo |= FM68K_HALTED;
- m68kcontext.io_cycle_counter = 0;
-RET(4)
+RET0()
}
// RTE
}
// RTE
@@
-19343,7
+19348,7
@@
OPCODE(0x4E90)
{
u32 oldPC;
{
u32 oldPC;
- oldPC =
(u32)(PC) - Base
PC;
+ oldPC =
GET_
PC;
PRE_IO
PUSH_32_F(oldPC)
}
PRE_IO
PUSH_32_F(oldPC)
}
@@
-19364,7
+19369,7
@@
OPCODE(0x4EA8)
{
u32 oldPC;
{
u32 oldPC;
- oldPC =
(u32)(PC) - Base
PC;
+ oldPC =
GET_
PC;
PRE_IO
PUSH_32_F(oldPC)
}
PRE_IO
PUSH_32_F(oldPC)
}
@@
-19385,7
+19390,7
@@
OPCODE(0x4EB0)
{
u32 oldPC;
{
u32 oldPC;
- oldPC =
(u32)(PC) - Base
PC;
+ oldPC =
GET_
PC;
PRE_IO
PUSH_32_F(oldPC)
}
PRE_IO
PUSH_32_F(oldPC)
}
@@
-19405,7
+19410,7
@@
OPCODE(0x4EB8)
{
u32 oldPC;
{
u32 oldPC;
- oldPC =
(u32)(PC) - Base
PC;
+ oldPC =
GET_
PC;
PRE_IO
PUSH_32_F(oldPC)
}
PRE_IO
PUSH_32_F(oldPC)
}
@@
-19425,7
+19430,7
@@
OPCODE(0x4EB9)
{
u32 oldPC;
{
u32 oldPC;
- oldPC =
(u32)(PC) - Base
PC;
+ oldPC =
GET_
PC;
PRE_IO
PUSH_32_F(oldPC)
}
PRE_IO
PUSH_32_F(oldPC)
}
@@
-19441,12
+19446,12
@@
OPCODE(0x4EBA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
{
u32 oldPC;
PC++;
{
u32 oldPC;
- oldPC =
(u32)(PC) - Base
PC;
+ oldPC =
GET_
PC;
PRE_IO
PUSH_32_F(oldPC)
}
PRE_IO
PUSH_32_F(oldPC)
}
@@
-19462,12
+19467,12
@@
OPCODE(0x4EBB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
{
u32 oldPC;
DECODE_EXT_WORD
{
u32 oldPC;
- oldPC =
(u32)(PC) - Base
PC;
+ oldPC =
GET_
PC;
PRE_IO
PUSH_32_F(oldPC)
}
PRE_IO
PUSH_32_F(oldPC)
}
@@
-19545,7
+19550,7
@@
OPCODE(0x4EFA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
SET_PC(adr)
CHECK_BRANCH_EXCEPTION(adr)
PC++;
SET_PC(adr)
CHECK_BRANCH_EXCEPTION(adr)
@@
-19558,7
+19563,7
@@
OPCODE(0x4EFB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
SET_PC(adr)
CHECK_BRANCH_EXCEPTION(adr)
DECODE_EXT_WORD
SET_PC(adr)
CHECK_BRANCH_EXCEPTION(adr)
@@
-19724,7
+19729,7
@@
OPCODE(0x41BA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, src)
PC++;
PRE_IO
READ_WORD_F(adr, src)
@@
-19744,7
+19749,7
@@
OPCODE(0x41BB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
@@
-19883,7
+19888,7
@@
OPCODE(0x41FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
res = adr;
AREG((Opcode >> 9) & 7) = res;
PC++;
res = adr;
AREG((Opcode >> 9) & 7) = res;
@@
-19896,7
+19901,7
@@
OPCODE(0x41FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
res = adr;
AREG((Opcode >> 9) & 7) = res;
DECODE_EXT_WORD
res = adr;
AREG((Opcode >> 9) & 7) = res;
@@
-23299,6
+23304,8
@@
OPCODE(0x51C8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
res = DREGu16((Opcode >> 0) & 7);
res--;
DREGu16((Opcode >> 0) & 7) = res;
res = DREGu16((Opcode >> 0) & 7);
res--;
DREGu16((Opcode >> 0) & 7) = res;
@@
-23306,7
+23313,7
@@
OPCODE(0x51C8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23322,6
+23329,8
@@
OPCODE(0x52C8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if ((!flag_NotZ) || (flag_C & 0x100))
{
res = DREGu16((Opcode >> 0) & 7);
if ((!flag_NotZ) || (flag_C & 0x100))
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23331,7
+23340,7
@@
OPCODE(0x52C8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23353,6
+23362,8
@@
OPCODE(0x53C8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if (flag_NotZ && (!(flag_C & 0x100)))
{
res = DREGu16((Opcode >> 0) & 7);
if (flag_NotZ && (!(flag_C & 0x100)))
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23362,7
+23373,7
@@
OPCODE(0x53C8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23384,6
+23395,8
@@
OPCODE(0x54C8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if (flag_C & 0x100)
{
res = DREGu16((Opcode >> 0) & 7);
if (flag_C & 0x100)
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23393,7
+23406,7
@@
OPCODE(0x54C8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23415,6
+23428,8
@@
OPCODE(0x55C8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if (!(flag_C & 0x100))
{
res = DREGu16((Opcode >> 0) & 7);
if (!(flag_C & 0x100))
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23424,7
+23439,7
@@
OPCODE(0x55C8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23446,6
+23461,8
@@
OPCODE(0x56C8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if (!flag_NotZ)
{
res = DREGu16((Opcode >> 0) & 7);
if (!flag_NotZ)
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23455,7
+23472,7
@@
OPCODE(0x56C8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23477,6
+23494,8
@@
OPCODE(0x57C8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if (flag_NotZ)
{
res = DREGu16((Opcode >> 0) & 7);
if (flag_NotZ)
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23486,7
+23505,7
@@
OPCODE(0x57C8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23508,6
+23527,8
@@
OPCODE(0x58C8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if (flag_V & 0x80)
{
res = DREGu16((Opcode >> 0) & 7);
if (flag_V & 0x80)
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23517,7
+23538,7
@@
OPCODE(0x58C8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23539,6
+23560,8
@@
OPCODE(0x59C8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if (!(flag_V & 0x80))
{
res = DREGu16((Opcode >> 0) & 7);
if (!(flag_V & 0x80))
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23548,7
+23571,7
@@
OPCODE(0x59C8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23570,6
+23593,8
@@
OPCODE(0x5AC8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if (flag_N & 0x80)
{
res = DREGu16((Opcode >> 0) & 7);
if (flag_N & 0x80)
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23579,7
+23604,7
@@
OPCODE(0x5AC8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23601,6
+23626,8
@@
OPCODE(0x5BC8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if (!(flag_N & 0x80))
{
res = DREGu16((Opcode >> 0) & 7);
if (!(flag_N & 0x80))
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23610,7
+23637,7
@@
OPCODE(0x5BC8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23632,6
+23659,8
@@
OPCODE(0x5CC8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if ((flag_N ^ flag_V) & 0x80)
{
res = DREGu16((Opcode >> 0) & 7);
if ((flag_N ^ flag_V) & 0x80)
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23641,7
+23670,7
@@
OPCODE(0x5CC8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23663,6
+23692,8
@@
OPCODE(0x5DC8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if (!((flag_N ^ flag_V) & 0x80))
{
res = DREGu16((Opcode >> 0) & 7);
if (!((flag_N ^ flag_V) & 0x80))
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23672,7
+23703,7
@@
OPCODE(0x5DC8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23694,6
+23725,8
@@
OPCODE(0x5EC8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
{
res = DREGu16((Opcode >> 0) & 7);
if ((!flag_NotZ) || ((flag_N ^ flag_V) & 0x80))
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23703,7
+23736,7
@@
OPCODE(0x5EC8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-23725,6
+23758,8
@@
OPCODE(0x5FC8)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
+ NOT_POLLING
+
if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
{
res = DREGu16((Opcode >> 0) & 7);
if (flag_NotZ && (!((flag_N ^ flag_V) & 0x80)))
{
res = DREGu16((Opcode >> 0) & 7);
@@
-23734,7
+23769,7
@@
OPCODE(0x5FC8)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25190,7
+25225,7
@@
OPCODE(0x6200)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25210,7
+25245,7
@@
OPCODE(0x6300)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25230,7
+25265,7
@@
OPCODE(0x6400)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25250,7
+25285,7
@@
OPCODE(0x6500)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25270,7
+25305,7
@@
OPCODE(0x6600)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25290,7
+25325,7
@@
OPCODE(0x6700)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25310,7
+25345,7
@@
OPCODE(0x6800)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25330,7
+25365,7
@@
OPCODE(0x6900)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25350,7
+25385,7
@@
OPCODE(0x6A00)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25370,7
+25405,7
@@
OPCODE(0x6B00)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25390,7
+25425,7
@@
OPCODE(0x6C00)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25410,7
+25445,7
@@
OPCODE(0x6D00)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25430,7
+25465,7
@@
OPCODE(0x6E00)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25450,7
+25485,7
@@
OPCODE(0x6F00)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25464,7
+25499,7
@@
RET(12)
OPCODE(0x6001)
{
#ifdef FAMEC_CHECK_BRANCHES
OPCODE(0x6001)
{
#ifdef FAMEC_CHECK_BRANCHES
- u32 newPC =
(u32)(PC) - Base
PC;
+ u32 newPC =
GET_
PC;
s8 offs=Opcode;
newPC += offs;
SET_PC(newPC);
s8 offs=Opcode;
newPC += offs;
SET_PC(newPC);
@@
-25484,7
+25519,7
@@
OPCODE(0x6000)
{
u32 newPC;
{
u32 newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
newPC += GET_SWORD;
SET_PC(newPC);
CHECK_BRANCH_EXCEPTION(newPC)
@@
-25502,7
+25537,7
@@
OPCODE(0x6101)
PRE_IO
PRE_IO
- oldPC =
(u32)(PC) - Base
PC;
+ oldPC =
GET_
PC;
PUSH_32_F(oldPC)
#ifdef FAMEC_CHECK_BRANCHES
offs = Opcode;
PUSH_32_F(oldPC)
#ifdef FAMEC_CHECK_BRANCHES
offs = Opcode;
@@
-25526,7
+25561,7
@@
OPCODE(0x6100)
{
u32 oldPC, newPC;
{
u32 oldPC, newPC;
- newPC =
(u32)(PC) - Base
PC;
+ newPC =
GET_
PC;
oldPC = newPC + 2;
PUSH_32_F(oldPC)
newPC += GET_SWORD;
oldPC = newPC + 2;
PUSH_32_F(oldPC)
newPC += GET_SWORD;
@@
-25717,7
+25752,7
@@
OPCODE(0x803A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, src)
PC++;
PRE_IO
READ_BYTE_F(adr, src)
@@
-25738,7
+25773,7
@@
OPCODE(0x803B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, src)
@@
-25979,7
+26014,7
@@
OPCODE(0x807A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, src)
PC++;
PRE_IO
READ_WORD_F(adr, src)
@@
-26000,7
+26035,7
@@
OPCODE(0x807B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
@@
-26241,7
+26276,7
@@
OPCODE(0x80BA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, src)
PC++;
PRE_IO
READ_LONG_F(adr, src)
@@
-26262,7
+26297,7
@@
OPCODE(0x80BB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, src)
@@
-27425,7
+27460,7
@@
OPCODE(0x80FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, src)
PC++;
PRE_IO
READ_WORD_F(adr, src)
@@
-27474,7
+27509,7
@@
OPCODE(0x80FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
@@
-28117,7
+28152,7
@@
OPCODE(0x81FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READSX_WORD_F(adr, src)
PC++;
PRE_IO
READSX_WORD_F(adr, src)
@@
-28174,7
+28209,7
@@
OPCODE(0x81FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READSX_WORD_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READSX_WORD_F(adr, src)
@@
-28575,7
+28610,7
@@
OPCODE(0x903A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, src)
PC++;
PRE_IO
READ_BYTE_F(adr, src)
@@
-28595,7
+28630,7
@@
OPCODE(0x903B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, src)
@@
-28840,7
+28875,7
@@
OPCODE(0x907A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, src)
PC++;
PRE_IO
READ_WORD_F(adr, src)
@@
-28860,7
+28895,7
@@
OPCODE(0x907B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
@@
-29114,7
+29149,7
@@
OPCODE(0x90BA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, src)
PC++;
PRE_IO
READ_LONG_F(adr, src)
@@
-29135,7
+29170,7
@@
OPCODE(0x90BB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, src)
@@
-30242,7
+30277,7
@@
OPCODE(0x90FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READSX_WORD_F(adr, src)
PC++;
PRE_IO
READSX_WORD_F(adr, src)
@@
-30263,7
+30298,7
@@
OPCODE(0x90FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READSX_WORD_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READSX_WORD_F(adr, src)
@@
-30489,7
+30524,7
@@
OPCODE(0x91FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READSX_LONG_F(adr, src)
PC++;
PRE_IO
READSX_LONG_F(adr, src)
@@
-30506,7
+30541,7
@@
OPCODE(0x91FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READSX_LONG_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READSX_LONG_F(adr, src)
@@
-30741,7
+30776,7
@@
OPCODE(0xB03A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, src)
PC++;
PRE_IO
READ_BYTE_F(adr, src)
@@
-30760,7
+30795,7
@@
OPCODE(0xB03B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, src)
@@
-30992,7
+31027,7
@@
OPCODE(0xB07A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, src)
PC++;
PRE_IO
READ_WORD_F(adr, src)
@@
-31011,7
+31046,7
@@
OPCODE(0xB07B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
@@
-31252,7
+31287,7
@@
OPCODE(0xB0BA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, src)
PC++;
PRE_IO
READ_LONG_F(adr, src)
@@
-31272,7
+31307,7
@@
OPCODE(0xB0BB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, src)
@@
-32382,7
+32417,7
@@
OPCODE(0xB0FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READSX_WORD_F(adr, src)
PC++;
PRE_IO
READSX_WORD_F(adr, src)
@@
-32402,7
+32437,7
@@
OPCODE(0xB0FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READSX_WORD_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READSX_WORD_F(adr, src)
@@
-32647,7
+32682,7
@@
OPCODE(0xB1FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READSX_LONG_F(adr, src)
PC++;
PRE_IO
READSX_LONG_F(adr, src)
@@
-32667,7
+32702,7
@@
OPCODE(0xB1FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READSX_LONG_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READSX_LONG_F(adr, src)
@@
-32904,7
+32939,7
@@
OPCODE(0xC03A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, src)
PC++;
PRE_IO
READ_BYTE_F(adr, src)
@@
-32925,7
+32960,7
@@
OPCODE(0xC03B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, src)
@@
-33166,7
+33201,7
@@
OPCODE(0xC07A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, src)
PC++;
PRE_IO
READ_WORD_F(adr, src)
@@
-33187,7
+33222,7
@@
OPCODE(0xC07B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
@@
-33428,7
+33463,7
@@
OPCODE(0xC0BA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, src)
PC++;
PRE_IO
READ_LONG_F(adr, src)
@@
-33449,7
+33484,7
@@
OPCODE(0xC0BB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, src)
@@
-34411,7
+34446,7
@@
OPCODE(0xC0FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, src)
PC++;
PRE_IO
READ_WORD_F(adr, src)
@@
-34435,7
+34470,7
@@
OPCODE(0xC0FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
@@
-34712,7
+34747,7
@@
OPCODE(0xC1FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READSX_WORD_F(adr, src)
PC++;
PRE_IO
READSX_WORD_F(adr, src)
@@
-34736,7
+34771,7
@@
OPCODE(0xC1FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READSX_WORD_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READSX_WORD_F(adr, src)
@@
-35046,7
+35081,7
@@
OPCODE(0xD03A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_BYTE_F(adr, src)
PC++;
PRE_IO
READ_BYTE_F(adr, src)
@@
-35066,7
+35101,7
@@
OPCODE(0xD03B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_BYTE_F(adr, src)
@@
-35311,7
+35346,7
@@
OPCODE(0xD07A)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_WORD_F(adr, src)
PC++;
PRE_IO
READ_WORD_F(adr, src)
@@
-35331,7
+35366,7
@@
OPCODE(0xD07B)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_WORD_F(adr, src)
@@
-35585,7
+35620,7
@@
OPCODE(0xD0BA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READ_LONG_F(adr, src)
PC++;
PRE_IO
READ_LONG_F(adr, src)
@@
-35606,7
+35641,7
@@
OPCODE(0xD0BB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READ_LONG_F(adr, src)
@@
-36713,7
+36748,7
@@
OPCODE(0xD0FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READSX_WORD_F(adr, src)
PC++;
PRE_IO
READSX_WORD_F(adr, src)
@@
-36734,7
+36769,7
@@
OPCODE(0xD0FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READSX_WORD_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READSX_WORD_F(adr, src)
@@
-36960,7
+36995,7
@@
OPCODE(0xD1FA)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr = GET_SWORD +
((u32)(PC) - BasePC)
;
+ adr = GET_SWORD +
GET_PC
;
PC++;
PRE_IO
READSX_LONG_F(adr, src)
PC++;
PRE_IO
READSX_LONG_F(adr, src)
@@
-36977,7
+37012,7
@@
OPCODE(0xD1FB)
u32 adr, res;
u32 src, dst;
u32 adr, res;
u32 src, dst;
- adr =
(u32)(PC) - Base
PC;
+ adr =
GET_
PC;
DECODE_EXT_WORD
PRE_IO
READSX_LONG_F(adr, src)
DECODE_EXT_WORD
PRE_IO
READSX_LONG_F(adr, src)
@@
-39975,7
+40010,7
@@
RET(14)
OPCODE(0x6001_idle)
{
#ifdef FAMEC_CHECK_BRANCHES
OPCODE(0x6001_idle)
{
#ifdef FAMEC_CHECK_BRANCHES
- u32 newPC =
(u32)(PC) - Base
PC;
+ u32 newPC =
GET_
PC;
s8 offs=Opcode;
newPC += offs;
SET_PC(newPC);
s8 offs=Opcode;
newPC += offs;
SET_PC(newPC);
@@
-39984,8
+40019,7
@@
OPCODE(0x6001_idle)
PC += ((s8)(Opcode & 0xFE)) >> 1;
#endif
UPDATE_IDLE_COUNT
PC += ((s8)(Opcode & 0xFE)) >> 1;
#endif
UPDATE_IDLE_COUNT
- m68kcontext.io_cycle_counter = 10;
-RET(10)
+RET0()
}
// BCC
}
// BCC
@@
-39995,7
+40029,8
@@
OPCODE(0x6601_idle)
{
UPDATE_IDLE_COUNT
PC += ((s8)(Opcode & 0xFE)) >> 1;
{
UPDATE_IDLE_COUNT
PC += ((s8)(Opcode & 0xFE)) >> 1;
- m68kcontext.io_cycle_counter = 8;
+ //if (idle_hit)
+ RET0()
}
RET(8)
}
}
RET(8)
}
@@
-40006,44
+40041,47
@@
OPCODE(0x6701_idle)
{
UPDATE_IDLE_COUNT
PC += ((s8)(Opcode & 0xFE)) >> 1;
{
UPDATE_IDLE_COUNT
PC += ((s8)(Opcode & 0xFE)) >> 1;
- m68kcontext.io_cycle_counter = 8;
+ //if (idle_hit)
+ RET0()
}
RET(8)
}
}
RET(8)
}
+extern int SekIsIdleReady(void);
extern int SekIsIdleCode(unsigned short *dst, int bytes);
extern int SekIsIdleCode(unsigned short *dst, int bytes);
-extern int SekRegisterIdlePatch(unsigned int pc, int oldop, int newop);
+extern int SekRegisterIdlePatch(unsigned int pc, int oldop, int newop
, void *ctx
);
OPCODE(idle_detector_bcc8)
{
OPCODE(idle_detector_bcc8)
{
- extern int idledet_start_frame;
- extern char Pico[];
int frame_count, cond_true, bytes, ret, newop;
u16 *dest_pc;
dest_pc = PC + (((s8)(Opcode & 0xFE)) >> 1);
int frame_count, cond_true, bytes, ret, newop;
u16 *dest_pc;
dest_pc = PC + (((s8)(Opcode & 0xFE)) >> 1);
- frame_count = *(int *)(Pico+0x22208+0x1c); // Pico.m.frame_count
- if (frame_count < idledet_start_frame)
+ if (!SekIsIdleReady())
goto end;
bytes = 0 - (s8)(Opcode & 0xFE) - 2;
ret = SekIsIdleCode(dest_pc, bytes);
newop = (Opcode & 0xfe) | 0x7100;
if (!ret) newop |= 0x200;
goto end;
bytes = 0 - (s8)(Opcode & 0xFE) - 2;
ret = SekIsIdleCode(dest_pc, bytes);
newop = (Opcode & 0xfe) | 0x7100;
if (!ret) newop |= 0x200;
- if (Opcode & 0x0100) newop |= 0x400; // beq
+ if ( Opcode & 0x0100) newop |= 0x400; // beq
+ if (!(Opcode & 0x0f00)) newop |= 0xc00; // bra
- ret = SekRegisterIdlePatch(GET_PC - 2, Opcode, newop);
+ ret = SekRegisterIdlePatch(GET_PC - 2, Opcode, newop
, &m68kcontext
);
switch (ret)
{
case 0: PC[-1] = newop; break;
case 1: break;
switch (ret)
{
case 0: PC[-1] = newop; break;
case 1: break;
- case 2: JumpTable[Opcode] = (Opcode & 0x0100) ? CAST_OP(0x6701) : CAST_OP(0x6601); break;
+ case 2: JumpTable[Opcode] = (Opcode & 0x0f00) ?
+ ((Opcode & 0x0100) ? CAST_OP(0x6701) : CAST_OP(0x6601)) :
+ CAST_OP(0x6001); break;
}
end:
}
end:
- cond_true = (Opcode & 0x0100) ? !flag_NotZ : flag_NotZ; // beq?
+ if ((Opcode & 0xff00) == 0x6000) cond_true = 1;
+ else cond_true = (Opcode & 0x0100) ? !flag_NotZ : flag_NotZ; // beq?
if (cond_true)
{
PC = dest_pc;
if (cond_true)
{
PC = dest_pc;
@@
-40052,14
+40090,4
@@
end:
RET(8)
}
RET(8)
}
-OPCODE(idle_detector_dead)
-{
- // patch without further questions
- int newop = 0x7d00 | (Opcode & 0xff);
- PC[-1] = newop;
- SekRegisterIdlePatch(GET_PC - 2, Opcode, newop);
-
- PC += ((s8)(Opcode & 0xFE)) >> 1;
-RET(10)
-}
#endif // PICODRIVE_HACK
#endif // PICODRIVE_HACK