.code #include "a56.h" .code #include "gram.h" X: {return XMEM;} Y: {return YMEM;} L: {return LMEM;} P: {return PMEM;} A10 {return A10;} A {return AAAA;} B10 {return B10;} B {return BBBB;} AB {return AABB;} BA {return BBAA;} X {return XXXX;} Y {return YYYY;} SR {return SR;} MR {return MR;} CCR {return CCR;} OMR {return OMR;} SP {return SP;} SSH {return SSH;} SSL {return SSL;} LA {return LA;} LC {return LC;} A0 {yylval.ival = 0; return AREG;} A1 {yylval.ival = 1; return AREG;} A2 {yylval.ival = 2; return AREG;} B0 {yylval.ival = 0; return BREG;} B1 {yylval.ival = 1; return BREG;} B2 {yylval.ival = 2; return BREG;} M0 {yylval.ival = 0; return MREG;} M1 {yylval.ival = 1; return MREG;} M2 {yylval.ival = 2; return MREG;} M3 {yylval.ival = 3; return MREG;} M4 {yylval.ival = 4; return MREG;} M5 {yylval.ival = 5; return MREG;} M6 {yylval.ival = 6; return MREG;} M7 {yylval.ival = 7; return MREG;} N0 {yylval.ival = 0; return NREG;} N1 {yylval.ival = 1; return NREG;} N2 {yylval.ival = 2; return NREG;} N3 {yylval.ival = 3; return NREG;} N4 {yylval.ival = 4; return NREG;} N5 {yylval.ival = 5; return NREG;} N6 {yylval.ival = 6; return NREG;} N7 {yylval.ival = 7; return NREG;} R0 {yylval.ival = 0; return RREG;} R1 {yylval.ival = 1; return RREG;} R2 {yylval.ival = 2; return RREG;} R3 {yylval.ival = 3; return RREG;} R4 {yylval.ival = 4; return RREG;} R5 {yylval.ival = 5; return RREG;} R6 {yylval.ival = 6; return RREG;} R7 {yylval.ival = 7; return RREG;} X0 {yylval.ival = 0; return XREG;} X1 {yylval.ival = 1; return XREG;} Y0 {yylval.ival = 0; return YREG;} Y1 {yylval.ival = 1; return YREG;} ABS {return OP_ABS;} ADC {return OP_ADC;} ADD {return OP_ADD;} ADDL {return OP_ADDL;} ADDR {return OP_ADDR;} ASL {return OP_ASL;} ASR {return OP_ASR;} CLR {return OP_CLR;} CMP {return OP_CMP;} CMPM {return OP_CMPM;} DIV {return OP_DIV;} MAC {return OP_MAC;} MACR {return OP_MACR;} MPY {return OP_MPY;} MPYR {return OP_MPYR;} NEG {return OP_NEG;} NORM {return OP_NORM;} RND {return OP_RND;} SBC {return OP_SBC;} SUB {return OP_SUB;} SUBL {return OP_SUBL;} SUBR {return OP_SUBR;} TCC {yylval.cond = 0x0; return OP_TCC;} THS {yylval.cond = 0x0; return OP_TCC;} TGE {yylval.cond = 0x1; return OP_TCC;} TNE {yylval.cond = 0x2; return OP_TCC;} TPL {yylval.cond = 0x3; return OP_TCC;} TNN {yylval.cond = 0x4; return OP_TCC;} TEC {yylval.cond = 0x5; return OP_TCC;} TLC {yylval.cond = 0x6; return OP_TCC;} TGT {yylval.cond = 0x7; return OP_TCC;} TCS {yylval.cond = 0x8; return OP_TCC;} TLO {yylval.cond = 0x8; return OP_TCC;} TLT {yylval.cond = 0x9; return OP_TCC;} TEQ {yylval.cond = 0xA; return OP_TCC;} TMI {yylval.cond = 0xB; return OP_TCC;} TNR {yylval.cond = 0xC; return OP_TCC;} TES {yylval.cond = 0xD; return OP_TCC;} TLS {yylval.cond = 0xE; return OP_TCC;} TLE {yylval.cond = 0xF; return OP_TCC;} TFR {return OP_TFR;} TST {return OP_TST;} AND {return OP_AND;} ANDI {return OP_ANDI;} EOR {return OP_EOR;} LSL {return OP_LSL;} LSR {return OP_LSR;} NOT {return OP_NOT;} OR {return OP_OR;} ORI {return OP_ORI;} ROL {return OP_ROL;} ROR {return OP_ROR;} BCLR {return OP_BCLR;} BSET {return OP_BSET;} BCHG {return OP_BCHG;} BTST {return OP_BTST;} DO {return OP_DO;} ENDDO {return OP_ENDDO;} LUA {return OP_LUA;} MOVE {return OP_MOVE;} MOVEC {return OP_MOVEC;} MOVEM {return OP_MOVEM;} MOVEP {return OP_MOVEP;} INCLUDE {return OP_INCLUDE;} ILLEGAL {return OP_ILLEGAL;} JCC {yylval.cond = 0x0; return OP_JCC;} JHS {yylval.cond = 0x0; return OP_JCC;} JGE {yylval.cond = 0x1; return OP_JCC;} JNE {yylval.cond = 0x2; return OP_JCC;} JPL {yylval.cond = 0x3; return OP_JCC;} JNN {yylval.cond = 0x4; return OP_JCC;} JEC {yylval.cond = 0x5; return OP_JCC;} JLC {yylval.cond = 0x6; return OP_JCC;} JGT {yylval.cond = 0x7; return OP_JCC;} JCS {yylval.cond = 0x8; return OP_JCC;} JLO {yylval.cond = 0x8; return OP_JCC;} JLT {yylval.cond = 0x9; return OP_JCC;} JEQ {yylval.cond = 0xA; return OP_JCC;} JMI {yylval.cond = 0xB; return OP_JCC;} JNR {yylval.cond = 0xC; return OP_JCC;} JES {yylval.cond = 0xD; return OP_JCC;} JLS {yylval.cond = 0xE; return OP_JCC;} JLE {yylval.cond = 0xF; return OP_JCC;} JMP {return OP_JMP;} JCLR {return OP_JCLR;} JSET {return OP_JSET;} JSCC {yylval.cond = 0x0; return OP_JSCC;} JSHS {yylval.cond = 0x0; return OP_JSCC;} JSGE {yylval.cond = 0x1; return OP_JSCC;} JSNE {yylval.cond = 0x2; return OP_JSCC;} JSPL {yylval.cond = 0x3; return OP_JSCC;} JSNN {yylval.cond = 0x4; return OP_JSCC;} JSEC {yylval.cond = 0x5; return OP_JSCC;} JSLC {yylval.cond = 0x6; return OP_JSCC;} JSGT {yylval.cond = 0x7; return OP_JSCC;} JSCS {yylval.cond = 0x8; return OP_JSCC;} JSLO {yylval.cond = 0x8; return OP_JSCC;} JSLT {yylval.cond = 0x9; return OP_JSCC;} JSEQ {yylval.cond = 0xA; return OP_JSCC;} JSMI {yylval.cond = 0xB; return OP_JSCC;} JSNR {yylval.cond = 0xC; return OP_JSCC;} JSES {yylval.cond = 0xD; return OP_JSCC;} JSLS {yylval.cond = 0xE; return OP_JSCC;} JSLE {yylval.cond = 0xF; return OP_JSCC;} JSR {return OP_JSR;} JSCLR {return OP_JSCLR;} JSSET {return OP_JSSET;} NOP {return OP_NOP;} REP {return OP_REP;} RESET {return OP_RESET;} RTI {return OP_RTI;} RTS {return OP_RTS;} STOP {return OP_STOP;} SWI {return OP_SWI;} WAIT {return OP_WAIT;} EQU {return OP_EQU;} ORG {return OP_ORG;} DC {return OP_DC;} DS {return OP_DS;} DSM {return OP_DSM;} INT {return OP_INT;} END {return OP_END;} PAGE {return OP_PAGE;} PSECT {return OP_PSECT;} ALIGN {return OP_ALIGN;} PI {return OP_PI;} SIN {return OP_SIN;} COS {return OP_COS;} TAN {return OP_TAN;} ATAN {return OP_ATAN;} ASIN {return OP_ASIN;} ACOS {return OP_ACOS;} EXP {return OP_EXP;} LN {return OP_LN;} LOG {return OP_LOG;} POW {return OP_POW;}