more MAME fixes, some optimization
[picodrive.git] / cpu / Cyclone / app.h
1 \r
2 #include <stdio.h>\r
3 #include <stdarg.h>\r
4 #include <stdlib.h>\r
5 #include <string.h>\r
6 \r
7 #include "config.h"\r
8 \r
9 // Disa.c\r
10 #include "Disa/Disa.h"\r
11 \r
12 // Ea.cpp\r
13 extern int g_jmp_cycle_table[];\r
14 extern int g_jsr_cycle_table[];\r
15 extern int g_lea_cycle_table[];\r
16 extern int g_pea_cycle_table[];\r
17 extern int g_movem_cycle_table[];\r
18 int Ea_add_ns(int *tab, int ea); // add nonstandard EA cycles\r
19 int EaCalc(int a,int mask,int ea,int size,int top=0);\r
20 int EaRead(int a,int v,int ea,int size,int mask,int top=0);\r
21 int EaCanRead(int ea,int size);\r
22 int EaWrite(int a,int v,int ea,int size,int mask,int top=0);\r
23 int EaCanWrite(int ea);\r
24 int EaAn(int ea);\r
25 \r
26 // Main.cpp\r
27 extern int *CyJump;   // Jump table\r
28 extern int  ms;       // If non-zero, output in Microsoft ARMASM format\r
29 extern char *Narm[4]; // Normal ARM Extensions for operand sizes 0,1,2\r
30 extern char *Sarm[4]; // Sign-extend ARM Extensions for operand sizes 0,1,2\r
31 extern int  Cycles;   // Current cycles for opcode\r
32 extern int  pc_dirty; // something changed PC during processing\r
33 void ot(const char *format, ...);\r
34 void ltorg();\r
35 void CheckInterrupt(int op);\r
36 int MemHandler(int type,int size,int addrreg=0);\r
37 void FlushPC(void);\r
38 \r
39 // OpAny.cpp\r
40 int OpGetFlags(int subtract,int xbit,int sprecialz=0);\r
41 void OpUse(int op,int use);\r
42 void OpStart(int op,int sea=0,int tea=0);\r
43 void OpEnd(int sea=0,int tea=0);\r
44 int OpBase(int op,int sepa=0);\r
45 void OpAny(int op);\r
46 \r
47 //----------------------\r
48 // OpArith.cpp\r
49 int OpArith(int op);\r
50 int OpLea(int op);\r
51 int OpAddq(int op);\r
52 int OpArithReg(int op);\r
53 int OpMul(int op);\r
54 int OpAbcd(int op);\r
55 int OpNbcd(int op);\r
56 int OpAritha(int op);\r
57 int OpAddx(int op);\r
58 int OpCmpEor(int op);\r
59 int OpCmpm(int op);\r
60 int OpChk(int op);\r
61 int GetXBit(int subtract);\r
62 \r
63 // OpBranch.cpp\r
64 void OpPush32();\r
65 void OpPushSr(int high);\r
66 int OpTrap(int op);\r
67 int OpLink(int op);\r
68 int OpUnlk(int op);\r
69 int Op4E70(int op);\r
70 int OpJsr(int op);\r
71 int OpBranch(int op);\r
72 int OpDbra(int op);\r
73 \r
74 // OpLogic.cpp\r
75 int OpBtstReg(int op);\r
76 int OpBtstImm(int op);\r
77 int OpNeg(int op);\r
78 int OpSwap(int op);\r
79 int OpTst(int op);\r
80 int OpExt(int op);\r
81 int OpSet(int op);\r
82 int OpAsr(int op);\r
83 int OpAsrEa(int op);\r
84 int OpTas(int op, int gen_special=0);\r
85 \r
86 // OpMove.cpp\r
87 int OpMove(int op);\r
88 int OpLea(int op);\r
89 void OpFlagsToReg(int high);\r
90 void OpRegToFlags(int high);\r
91 int OpMoveSr(int op);\r
92 int OpArithSr(int op);\r
93 int OpPea(int op);\r
94 int OpMovem(int op);\r
95 int OpMoveq(int op);\r
96 int OpMoveUsp(int op);\r
97 int OpExg(int op);\r
98 int OpMovep(int op); // notaz\r
99 int OpStopReset(int op);\r
100 void SuperCheck(int op);\r
101 void SuperEnd(int op);\r
102 void SuperChange(int op);\r