X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=mach.h;h=8b10038823a5f399e3163f5c756b01f9a700ef9f;hp=65ea1488867b9c35d5960e4fdd0f1e43ee01d22a;hb=5cd8a4814b805f1ef8ce689423eb5eeba12573c5;hpb=75cce0d9eb190f6094f66ae283b5981af25e5a57 diff --git a/mach.h b/mach.h index 65ea148..8b10038 100644 --- a/mach.h +++ b/mach.h @@ -1,9 +1,9 @@ // // RMAC - Reboot's Macro Assembler for the Atari Jaguar Console System // MACH.H - Code Generation -// Copyright (C) 199x Landon Dyer, 2011 Reboot and Friends +// Copyright (C) 199x Landon Dyer, 2017 Reboot and Friends // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986 -// Source Utilised with the Kind Permission of Landon Dyer +// Source utilised with the kind permission of Landon Dyer // #ifndef __MACH_H__ @@ -12,17 +12,20 @@ #include "rmac.h" #include "amode.h" -// Globals, Externals etc -extern char *seg_error; -extern char *undef_error; -extern char *rel_error; -extern char *range_error; -extern char *abs_error; +// Exported variables +extern char seg_error[]; +extern char undef_error[]; +extern char rel_error[]; +extern char range_error[]; +extern char abs_error[]; extern MNTAB machtab[]; +extern int activecpu; +extern int activefpu; +extern int movep; -// Prototypes -int m_unimp(), m_badmode(), m_bad6mode(), m_bad6inst(); -int m_self(WORD); +// Fucntion prototypes +int m_unimp(WORD, WORD), m_badmode(WORD, WORD), m_bad6mode(WORD, WORD), m_bad6inst(WORD, WORD); +int m_self(WORD, WORD); int m_abcd(WORD, WORD); int m_reg(WORD, WORD); int m_imm(WORD, WORD); @@ -32,12 +35,14 @@ int m_shr(WORD, WORD); int m_bitop(WORD, WORD); int m_exg(WORD, WORD); int m_ea(WORD, WORD); +int m_lea(WORD, WORD); int m_br(WORD, WORD); int m_dbra(WORD, WORD); int m_link(WORD, WORD); int m_adda(WORD, WORD); int m_addq(WORD, WORD); -int m_move(WORD, int); +//int m_move(WORD, int); +int m_move(WORD, WORD); int m_moveq(WORD, WORD); int m_usp(WORD, WORD); int m_movep(WORD, WORD); @@ -45,4 +50,233 @@ int m_trap(WORD, WORD); int m_movem(WORD, WORD); int m_clra(WORD, WORD); +int m_move30(WORD, WORD); //68020/30/40/60 +int m_br30(WORD inst, WORD siz); +int m_ea030(WORD inst, WORD siz); +int m_bfop(WORD inst, WORD siz); +int m_callm(WORD inst, WORD siz); +int m_cas(WORD inst, WORD siz); +int m_cas2(WORD inst, WORD siz); +int m_chk2(WORD inst, WORD siz); +int m_cmp2(WORD inst, WORD siz); +int m_bkpt(WORD inst, WORD siz); +int m_cpbr(WORD inst, WORD siz); +int m_cpdbr(WORD inst, WORD siz); +int m_divs(WORD inst, WORD siz); +int m_muls(WORD inst, WORD siz); +int m_divu(WORD inst, WORD siz); +int m_mulu(WORD inst, WORD siz); +int m_divsl(WORD inst, WORD siz); +int m_divul(WORD inst, WORD siz); +int m_move16a(WORD inst, WORD siz); +int m_move16b(WORD inst, WORD siz); +int m_pack(WORD inst, WORD siz); +int m_rtm(WORD inst, WORD siz); +int m_rtd(WORD inst, WORD siz); +int m_trapcc(WORD inst, WORD siz); +int m_cinv(WORD inst, WORD siz); +int m_cprest(WORD inst, WORD siz); +int m_movec(WORD inst, WORD siz); +int m_moves(WORD inst, WORD siz); + +// PMMU +int m_pbcc(WORD inst, WORD siz); +int m_pflusha(WORD inst, WORD siz); +int m_pflush(WORD inst, WORD siz); +int m_pflushr(WORD inst, WORD siz); +int m_pload(WORD inst, WORD siz); +int m_pmove(WORD inst, WORD siz); +int m_pmovefd(WORD inst, WORD siz); +int m_ptest(WORD inst, WORD siz); +int m_ptrapbs(WORD inst, WORD siz); +int m_ptrapbc(WORD inst, WORD siz); +int m_ptrapls(WORD inst, WORD siz); +int m_ptraplc(WORD inst, WORD siz); +int m_ptrapss(WORD inst, WORD siz); +int m_ptrapsc(WORD inst, WORD siz); +int m_ptrapas(WORD inst, WORD siz); +int m_ptrapac(WORD inst, WORD siz); +int m_ptrapws(WORD inst, WORD siz); +int m_ptrapwc(WORD inst, WORD siz); +int m_ptrapis(WORD inst, WORD siz); +int m_ptrapic(WORD inst, WORD siz); +int m_ptrapgc(WORD inst, WORD siz); +int m_ptrapgs(WORD inst, WORD siz); +int m_ptrapcs(WORD inst, WORD siz); +int m_ptrapcc(WORD inst, WORD siz); +int m_ptrapbsn(WORD inst, WORD siz); +int m_ptrapbcn(WORD inst, WORD siz); +int m_ptraplsn(WORD inst, WORD siz); +int m_ptraplcn(WORD inst, WORD siz); +int m_ptrapssn(WORD inst, WORD siz); +int m_ptrapscn(WORD inst, WORD siz); +int m_ptrapasn(WORD inst, WORD siz); +int m_ptrapacn(WORD inst, WORD siz); +int m_ptrapwsn(WORD inst, WORD siz); +int m_ptrapwcn(WORD inst, WORD siz); +int m_ptrapisn(WORD inst, WORD siz); +int m_ptrapicn(WORD inst, WORD siz); +int m_ptrapgsn(WORD inst, WORD siz); +int m_ptrapgcn(WORD inst, WORD siz); +int m_ptrapcsn(WORD inst, WORD siz); +int m_ptrapccn(WORD inst, WORD siz); + +//FPU +int m_fabs(WORD inst, WORD siz); +int m_facos(WORD inst, WORD siz); +int m_fadd(WORD inst, WORD siz); +int m_fasin(WORD inst, WORD siz); +int m_fatan(WORD inst, WORD siz); +int m_fatanh(WORD inst, WORD siz); +int m_fcmp(WORD inst, WORD siz); +int m_fcos(WORD inst, WORD siz); +int m_fcosh(WORD inst, WORD siz); +int m_fdabs(WORD inst, WORD siz); +int m_fdadd(WORD inst, WORD siz); +int m_fdbcc(WORD inst, WORD siz); +int m_fddiv(WORD inst, WORD siz); +int m_fdfsqrt(WORD inst, WORD siz); +int m_fdiv(WORD inst, WORD siz); +int m_fdmove(WORD inst, WORD siz); +int m_fdmul(WORD inst, WORD siz); +int m_fdneg(WORD inst, WORD siz); +int m_fdsub(WORD inst, WORD siz); +int m_fetox(WORD inst, WORD siz); +int m_fetoxm1(WORD inst, WORD siz); +int m_fgetexp(WORD inst, WORD siz); +int m_fgetman(WORD inst, WORD siz); +int m_fint(WORD inst, WORD siz); +int m_fintrz(WORD inst, WORD siz); +int m_flog10(WORD inst, WORD siz); +int m_flog2(WORD inst, WORD siz); +int m_flogn(WORD inst, WORD siz); +int m_flognp1(WORD inst, WORD siz); +int m_fmod(WORD inst, WORD siz); +int m_fmove(WORD inst, WORD siz); +int m_fmovescr(WORD inst, WORD siz); +int m_fmovecr(WORD inst, WORD siz); +int m_fmovem(WORD inst, WORD siz); +int m_fmul(WORD inst, WORD siz); +int m_fneg(WORD inst, WORD siz); +int m_fnop(WORD inst, WORD siz); +int m_frem(WORD inst, WORD siz); +int m_fsabs(WORD inst, WORD siz); +int m_fsadd(WORD inst, WORD siz); +int m_fseq(WORD inst, WORD siz); +int m_fsne(WORD inst, WORD siz); +int m_fsgt(WORD inst, WORD siz); +int m_fsngt(WORD inst, WORD siz); +int m_fsge(WORD inst, WORD siz); +int m_fsnge(WORD inst, WORD siz); +int m_fslt(WORD inst, WORD siz); +int m_fsnlt(WORD inst, WORD siz); +int m_fsle(WORD inst, WORD siz); +int m_fsnle(WORD inst, WORD siz); +int m_fsgl(WORD inst, WORD siz); +int m_fsngl(WORD inst, WORD siz); +int m_fsgle(WORD inst, WORD siz); +int m_fsngle(WORD inst, WORD siz); +int m_fsogt(WORD inst, WORD siz); +int m_fsule(WORD inst, WORD siz); +int m_fsoge(WORD inst, WORD siz); +int m_fsult(WORD inst, WORD siz); +int m_fsolt(WORD inst, WORD siz); +int m_fsuge(WORD inst, WORD siz); +int m_fsole(WORD inst, WORD siz); +int m_fsugt(WORD inst, WORD siz); +int m_fsogl(WORD inst, WORD siz); +int m_fsueq(WORD inst, WORD siz); +int m_fsor(WORD inst, WORD siz); +int m_fsun(WORD inst, WORD siz); +int m_fsf(WORD inst, WORD siz); +int m_fst(WORD inst, WORD siz); +int m_fssf(WORD inst, WORD siz); +int m_fsst(WORD inst, WORD siz); +int m_fsseq(WORD inst, WORD siz); +int m_fssne(WORD inst, WORD siz); +int m_fscale(WORD inst, WORD siz); +int m_fsdiv(WORD inst, WORD siz); +int m_fsfsqrt(WORD inst, WORD siz); +int m_fsfsub(WORD inst, WORD siz); +int m_fsgldiv(WORD inst, WORD siz); +int m_fsglmul(WORD inst, WORD siz); +int m_fsin(WORD inst, WORD siz); +int m_fsincos(WORD inst, WORD siz); +int m_fsinh(WORD inst, WORD siz); +int m_fsmove(WORD inst, WORD siz); +int m_fsmul(WORD inst, WORD siz); +int m_fsneg(WORD inst, WORD siz); +int m_fsqrt(WORD inst, WORD siz); +int m_fsub(WORD inst, WORD siz); +int m_ftan(WORD inst, WORD siz); +int m_ftanh(WORD inst, WORD siz); +int m_ftentox(WORD inst, WORD siz); +int m_ftst(WORD inst, WORD siz); +int m_ftwotox(WORD inst, WORD siz); +int m_ftrapeq(WORD inst, WORD siz); +int m_ftrapne(WORD inst, WORD siz); +int m_ftrapgt(WORD inst, WORD siz); +int m_ftrapngt(WORD inst, WORD siz); +int m_ftrapge(WORD inst, WORD siz); +int m_ftrapnge(WORD inst, WORD siz); +int m_ftraplt(WORD inst, WORD siz); +int m_ftrapnlt(WORD inst, WORD siz); +int m_ftraple(WORD inst, WORD siz); +int m_ftrapnle(WORD inst, WORD siz); +int m_ftrapgl(WORD inst, WORD siz); +int m_ftrapngl(WORD inst, WORD siz); +int m_ftrapgle(WORD inst, WORD siz); +int m_ftrapngle(WORD inst, WORD siz); +int m_ftrapogt(WORD inst, WORD siz); +int m_ftrapule(WORD inst, WORD siz); +int m_ftrapoge(WORD inst, WORD siz); +int m_ftrapult(WORD inst, WORD siz); +int m_ftrapolt(WORD inst, WORD siz); +int m_ftrapuge(WORD inst, WORD siz); +int m_ftrapole(WORD inst, WORD siz); +int m_ftrapugt(WORD inst, WORD siz); +int m_ftrapogl(WORD inst, WORD siz); +int m_ftrapueq(WORD inst, WORD siz); +int m_ftrapor(WORD inst, WORD siz); +int m_ftrapun(WORD inst, WORD siz); +int m_ftrapf(WORD inst, WORD siz); +int m_ftrapt(WORD inst, WORD siz); +int m_ftrapsf(WORD inst, WORD siz); +int m_ftrapst(WORD inst, WORD siz); +int m_ftrapseq(WORD inst, WORD siz); +int m_ftrapsne(WORD inst, WORD siz); +int m_ftrapeqn(WORD inst, WORD siz); +int m_ftrapnen(WORD inst, WORD siz); +int m_ftrapgtn(WORD inst, WORD siz); +int m_ftrapngtn(WORD inst, WORD siz); +int m_ftrapgen(WORD inst, WORD siz); +int m_ftrapngen(WORD inst, WORD siz); +int m_ftrapltn(WORD inst, WORD siz); +int m_ftrapnltn(WORD inst, WORD siz); +int m_ftraplen(WORD inst, WORD siz); +int m_ftrapnlen(WORD inst, WORD siz); +int m_ftrapgln(WORD inst, WORD siz); +int m_ftrapngln(WORD inst, WORD siz); +int m_ftrapglen(WORD inst, WORD siz); +int m_ftrapnglen(WORD inst, WORD siz); +int m_ftrapogtn(WORD inst, WORD siz); +int m_ftrapulen(WORD inst, WORD siz); +int m_ftrapogen(WORD inst, WORD siz); +int m_ftrapultn(WORD inst, WORD siz); +int m_ftrapoltn(WORD inst, WORD siz); +int m_ftrapugen(WORD inst, WORD siz); +int m_ftrapolen(WORD inst, WORD siz); +int m_ftrapugtn(WORD inst, WORD siz); +int m_ftrapogln(WORD inst, WORD siz); +int m_ftrapueqn(WORD inst, WORD siz); +int m_ftraporn(WORD inst, WORD siz); +int m_ftrapunn(WORD inst, WORD siz); +int m_ftrapfn(WORD inst, WORD siz); +int m_ftraptn(WORD inst, WORD siz); +int m_ftrapsfn(WORD inst, WORD siz); +int m_ftrapstn(WORD inst, WORD siz); +int m_ftrapseqn(WORD inst, WORD siz); +int m_ftrapsnen(WORD inst, WORD siz); + #endif // __MACH_H__ +