8 #define CONFIG_FILE "config.h"
\r
10 #include CONFIG_FILE
\r
13 #include "Disa/Disa.h"
\r
16 extern int earead_check_addrerr;
\r
17 extern int eawrite_check_addrerr;
\r
18 extern int g_jmp_cycle_table[];
\r
19 extern int g_jsr_cycle_table[];
\r
20 extern int g_lea_cycle_table[];
\r
21 extern int g_pea_cycle_table[];
\r
22 extern int g_movem_cycle_table[];
\r
23 int Ea_add_ns(int *tab, int ea); // add nonstandard EA cycles
\r
24 int EaCalc(int a,int mask,int ea,int size,int top=0,int sign_extend=1); // 6
\r
25 int EaRead(int a,int v,int ea,int size,int mask,int top=0,int sign_extend=1); // 7
\r
26 int EaCalcRead(int r_ea,int r,int ea,int size,int mask,int sign_extend=1); // 6
\r
27 int EaCalcReadNoSE(int r_ea,int r,int ea,int size,int mask);
\r
28 int EaCanRead(int ea,int size);
\r
29 int EaWrite(int a,int v,int ea,int size,int mask,int top=0,int sign_extend_ea=1);
\r
30 int EaCanWrite(int ea);
\r
34 extern int *CyJump; // Jump table
\r
35 extern int ms; // If non-zero, output in Microsoft ARMASM format
\r
36 extern char *Narm[4]; // Normal ARM Extensions for operand sizes 0,1,2
\r
37 extern char *Sarm[4]; // Sign-extend ARM Extensions for operand sizes 0,1,2
\r
38 extern int Cycles; // Current cycles for opcode
\r
39 extern int pc_dirty; // something changed PC during processing
\r
40 extern int arm_op_count; // for stats
\r
41 void ot(const char *format, ...);
\r
43 int MemHandler(int type,int size,int addrreg=0,int need_addrerr_check=1);
\r
48 extern int opend_op_changes_cycles, opend_check_interrupt, opend_check_trace;
\r
49 int OpGetFlags(int subtract,int xbit,int sprecialz=0);
\r
50 void OpUse(int op,int use);
\r
51 void OpStart(int op,int sea=0,int tea=0,int op_changes_cycles=0,int supervisor_check=0);
\r
52 void OpEnd(int sea=0,int tea=0);
\r
53 int OpBase(int op,int size,int sepa=0);
\r
56 //----------------------
\r
58 int OpArith(int op);
\r
61 int OpArithReg(int op);
\r
65 int OpAritha(int op);
\r
67 int OpCmpEor(int op);
\r
70 int GetXBit(int subtract);
\r
74 void OpPushSr(int high);
\r
80 int OpBranch(int op);
\r
84 int OpBtstReg(int op);
\r
85 int OpBtstImm(int op);
\r
92 int OpAsrEa(int op);
\r
93 int OpTas(int op, int gen_special=0);
\r
98 void OpFlagsToReg(int high);
\r
99 void OpRegToFlags(int high,int srh_reg=0);
\r
100 int OpMoveSr(int op);
\r
101 int OpArithSr(int op);
\r
103 int OpMovem(int op);
\r
104 int OpMoveq(int op);
\r
105 int OpMoveUsp(int op);
\r
107 int OpMovep(int op);
\r
108 int OpStopReset(int op);
\r
109 void SuperEnd(void);
\r
110 void SuperChange(int op,int srh_reg=-1);
\r