OpenCores
URL https://opencores.org/ocsvn/copyblaze/copyblaze/trunk

Subversion Repositories copyblaze

[/] [copyblaze/] [trunk/] [copyblaze/] [sw/] [tools/] [asm/] [pBlazASM/] [pBlazASM/] [pbOpcodes.h] - Rev 2

Compare with Previous | Blame | View Log

/*
 *  Copyright © 2003..2008 : Henk van Kampen <henk@mediatronix.com>
 *
 *	This file is part of pBlazASM.
 *
 *  pBlazASM is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  pBlazASM is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with pBlazASM.  If not, see <http://www.gnu.org/licenses/>.
 */
 
const symbol_t opcodes[] =
	{
		// preferred mnemonics
		 { tOPCODE, stMOVE,   "ADD",      0x18000 },
		 { tOPCODE, stMOVE,   "ADDC",     0x1A000 },
		 { tOPCODE, stMOVE,   "AND",      0x0A000 },
		 { tOPCODE, stCJMP,   "CALL",     0x30000 },
		 { tOPCODE, stMOVE,   "COMP",     0x14000 },
		 { tOPCODE, stINT,    "DINT",     0x3C000 },
		 { tOPCODE, stINT,    "EINT",     0x3C001 },
		 { tOPCODE, stIO,     "IN",       0x04000 },
		 { tOPCODE, stCJMP,   "JUMP",     0x34000 },
		 { tOPCODE, stIO,     "LD",		  0x06000 },
		 { tOPCODE, stMOVE,   "MOVE",     0x00000 },
		 { tOPCODE, stMOVE,   "OR",       0x0C000 },
		 { tOPCODE, stIO,     "OUT",      0x2C000 },
		 { tOPCODE, stCRET,   "RET",      0x2A000 },
		 { tOPCODE, stINTE,   "RETI",     0x38001 },
		 { tOPCODE, stSHIFT,  "RL",       0x20002 },
		 { tOPCODE, stSHIFT,  "RR",       0x2000C },
		 { tOPCODE, stCSKP,   "SKIP",     0x34000 },
		 { tOPCODE, stSHIFT,  "SL0",      0x20006 },
		 { tOPCODE, stSHIFT,  "SL1",      0x20007 },
		 { tOPCODE, stSHIFT,  "SLA",      0x20000 },
		 { tOPCODE, stSHIFT,  "SLX",      0x20004 },
		 { tOPCODE, stSHIFT,  "SR0",      0x2000E },
		 { tOPCODE, stSHIFT,  "SR1",      0x2000F },
		 { tOPCODE, stSHIFT,  "SRA",      0x20008 },
		 { tOPCODE, stSHIFT,  "SRX",      0x2000A },
		 { tOPCODE, stIO,     "ST",		  0x2E000 },
		 { tOPCODE, stMOVE,   "SUB",      0x1C000 },
		 { tOPCODE, stMOVE,   "SUBC",     0x1E000 },
		 { tOPCODE, stMOVE,   "TEST",     0x12000 },
		 { tOPCODE, stMOVE,   "XOR",      0x0E000 },
		 { tOPCODE, stINST,   "INST",     0x00000 },
 
		// alternative mnemonics
		 { tOPCODE, stMOVE,   "ADDCY",    0x1A000 },
		 { tOPCODE, stMOVE,   "COMPARE",  0x14000 },
		 { tOPCODE, stINTI,   "DISABLE",  0x3C000 },
		 { tOPCODE, stINTI,   "ENABLE",   0x3C001 },
		 { tOPCODE, stIO,     "FETCH",    0x06000 },
		 { tOPCODE, stIO,     "INPUT",    0x04000 },
		 { tOPCODE, stINTE,   "HALT",     0x3C003 },
		 { tOPCODE, stMOVE,   "LOAD",     0x00000 },
		 { tOPCODE, stIO,     "OUTPUT",   0x2C000 },
		 { tOPCODE, stCRET,   "RETURN",   0x2A000 },
		 { tOPCODE, stINTE,   "RETURNI",  0x38001 },
		 { tOPCODE, stIO,     "STORE",    0x2E000 },
		 { tOPCODE, stMOVE,   "SUBCY",    0x1E000 }
 
		 ,// Wishbone
		 { tOPCODE, stIO,     "WBRDSING", 0x02000 },
		 { tOPCODE, stIO,     "WBWRSING", 0x08000 }
 } ;
 
const symbol_t conditions[] =
	{
		 { tCONDITION, stNONE, "Z",       0x01000 },
		 { tCONDITION, stNONE, "C",       0x01800 },
		 { tCONDITION, stNONE, "NZ",      0x01400 },
		 { tCONDITION, stNONE, "NC",      0x01C00 } } ;
 
const symbol_t indexes[] =
	{
		 { tVALUE, stINT, "SP",        0x000F0 },
		 { tINDEX, stNONE, ".SP",      0x000F4 },
		 { tINDEX, stNONE, ".SP++",    0x000F5 },
		 { tINDEX, stNONE, ".--SP",    0x000F6 },
		 { tINDEX, stNONE, ".-SP+",    0x000F7 },
 
		 { tVALUE, stINT, "IX",         0x000F8 },
		 { tINDEX, stNONE, ".IX",       0x000FC },
		 { tINDEX, stNONE, ".IX++",     0x000FD },
		 { tINDEX, stNONE, ".--IX",     0x000FE },
		 { tINDEX, stNONE, ".-IX+",     0x000FF }
} ;
 
const symbol_t registers[] =
	{
		 { tREGISTER, stNONE, "S0", 0 },
		 { tREGISTER, stNONE, "S1", 1 },
		 { tREGISTER, stNONE, "S2", 2 },
		 { tREGISTER, stNONE, "S3", 3 },
		 { tREGISTER, stNONE, "S4", 4 },
		 { tREGISTER, stNONE, "S5", 5 },
		 { tREGISTER, stNONE, "S6", 6 },
		 { tREGISTER, stNONE, "S7", 7 },
		 { tREGISTER, stNONE, "S8", 8 },
		 { tREGISTER, stNONE, "S9", 9 },
		 { tREGISTER, stNONE, "SA", 0xA },
		 { tREGISTER, stNONE, "SB", 0xB },
		 { tREGISTER, stNONE, "SC", 0xC },
		 { tREGISTER, stNONE, "SD", 0xD },
		 { tREGISTER, stNONE, "SE", 0xE },
		 { tREGISTER, stNONE, "SF", 0xF },
		 { tREGISTER, stNONE, "s0", 0 },
		 { tREGISTER, stNONE, "s1", 1 },
		 { tREGISTER, stNONE, "s2", 2 },
		 { tREGISTER, stNONE, "s3", 3 },
		 { tREGISTER, stNONE, "s4", 4 },
		 { tREGISTER, stNONE, "s5", 5 },
		 { tREGISTER, stNONE, "s6", 6 },
		 { tREGISTER, stNONE, "s7", 7 },
		 { tREGISTER, stNONE, "s8", 8 },
		 { tREGISTER, stNONE, "s9", 9 },
		 { tREGISTER, stNONE, "sA", 0xA },
		 { tREGISTER, stNONE, "sB", 0xB },
		 { tREGISTER, stNONE, "sC", 0xC },
		 { tREGISTER, stNONE, "sD", 0xD },
		 { tREGISTER, stNONE, "sE", 0xE },
		 { tREGISTER, stNONE, "sF", 0xF } } ;
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.