#define RCSID4 "$Id$" /* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". * */ /* * Motorola 6800 parsing rules */ operation : NOARG { emit1($1);} | BRANCH expr { branch($1,$2);} | XOP '#' expr { emit1($1 - 0x20); switch ($1 & 0x0F) { case 0x03: case 0x0C: case 0x0E: #ifdef RELOCATION newrelo($3.typ, RELBR | RELO2); #endif emit2($3.val); break; default: #ifdef RELOCATION newrelo($3.typ, RELO1); #endif emit1($3.val); } } | XOP '<' expr { emit1($1 - 0x10); #ifdef RELOCATION newrelo($3.typ, RELO1); #endif emit1($3.val); } | memref expr { emit1($1 + 0x10); #ifdef RELOCATION newrelo($2.typ, RELO2); #endif emit2($2.val); } | memref expr ',' X { emit1($1); #ifdef RELOCATION newrelo($2.typ, RELO1); #endif emit1($2.val); } ; memref : AOP | XOP ;