X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=cpu%2FCyclone%2Fapp.h;h=f61432f98dc51832180a0d3a93a77297cad7ada3;hb=03c5768cb5cb2cd8a7ea3e4383fd10065d27970e;hp=c260c2f7b4d54338e09cb6e8a871dcb4bcd5f7e2;hpb=cc68a136aa179a5f32fe40208371eb9c2b0aadae;p=picodrive.git diff --git a/cpu/Cyclone/app.h b/cpu/Cyclone/app.h index c260c2f..f61432f 100644 --- a/cpu/Cyclone/app.h +++ b/cpu/Cyclone/app.h @@ -16,30 +16,35 @@ extern int g_lea_cycle_table[]; extern int g_pea_cycle_table[]; extern int g_movem_cycle_table[]; int Ea_add_ns(int *tab, int ea); // add nonstandard EA cycles -int EaCalc(int a,int mask,int ea,int size,int top=0); -int EaRead(int a,int v,int ea,int size,int mask,int top=0); +int EaCalc(int a,int mask,int ea,int size,int top=0,int sign_extend=1); // 6 +int EaRead(int a,int v,int ea,int size,int mask,int top=0,int sign_extend=1); // 7 +int EaCalcRead(int r_ea,int r,int ea,int size,int mask,int sign_extend=1); // 6 +int EaCalcReadNoSE(int r_ea,int r,int ea,int size,int mask); int EaCanRead(int ea,int size); -int EaWrite(int a,int v,int ea,int size,int mask,int top=0); +int EaWrite(int a,int v,int ea,int size,int mask,int top=0,int sign_extend_ea=1); int EaCanWrite(int ea); int EaAn(int ea); // Main.cpp -extern int *CyJump; // Jump table -extern int ms; // If non-zero, output in Microsoft ARMASM format +extern int *CyJump; // Jump table +extern int ms; // If non-zero, output in Microsoft ARMASM format extern char *Narm[4]; // Normal ARM Extensions for operand sizes 0,1,2 extern char *Sarm[4]; // Sign-extend ARM Extensions for operand sizes 0,1,2 -extern int Cycles; // Current cycles for opcode +extern int Cycles; // Current cycles for opcode +extern int pc_dirty; // something changed PC during processing void ot(const char *format, ...); void ltorg(); void CheckInterrupt(int op); -int MemHandler(int type,int size); +int MemHandler(int type,int size,int addrreg=0); +void FlushPC(void); // OpAny.cpp +extern int g_op; int OpGetFlags(int subtract,int xbit,int sprecialz=0); void OpUse(int op,int use); -void OpStart(int op); -void OpEnd(); -int OpBase(int op,int sepa=0); +void OpStart(int op,int sea=0,int tea=0); +void OpEnd(int sea=0,int tea=0); +int OpBase(int op,int size,int sepa=0); void OpAny(int op); //---------------------- @@ -79,7 +84,7 @@ int OpExt(int op); int OpSet(int op); int OpAsr(int op); int OpAsrEa(int op); -int OpTas(int op); +int OpTas(int op, int gen_special=0); // OpMove.cpp int OpMove(int op); @@ -93,8 +98,9 @@ int OpMovem(int op); int OpMoveq(int op); int OpMoveUsp(int op); int OpExg(int op); -int OpMovep(int op); // notaz +int OpMovep(int op); int OpStopReset(int op); void SuperCheck(int op); -void SuperEnd(int op); -void SuperChange(int op); +void SuperEnd(void); +void SuperChange(int op,int load_srh=1); +