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

Subversion Repositories copyblaze

[/] [copyblaze/] [trunk/] [copyblaze/] [sw/] [tools/] [asm/] [pBlazASM/] [pBlazASM/] [pbOpcodes.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ameziti
/*
2
 *  Copyright © 2003..2008 : Henk van Kampen <henk@mediatronix.com>
3
 *
4
 *      This file is part of pBlazASM.
5
 *
6
 *  pBlazASM is free software: you can redistribute it and/or modify
7
 *  it under the terms of the GNU General Public License as published by
8
 *  the Free Software Foundation, either version 3 of the License, or
9
 *  (at your option) any later version.
10
 *
11
 *  pBlazASM is distributed in the hope that it will be useful,
12
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 *  GNU General Public License for more details.
15
 *
16
 *  You should have received a copy of the GNU General Public License
17
 *  along with pBlazASM.  If not, see <http://www.gnu.org/licenses/>.
18
 */
19
 
20
const symbol_t opcodes[] =
21
        {
22
                // preferred mnemonics
23
                 { tOPCODE, stMOVE,   "ADD",      0x18000 },
24
                 { tOPCODE, stMOVE,   "ADDC",     0x1A000 },
25
                 { tOPCODE, stMOVE,   "AND",      0x0A000 },
26
                 { tOPCODE, stCJMP,   "CALL",     0x30000 },
27
                 { tOPCODE, stMOVE,   "COMP",     0x14000 },
28
                 { tOPCODE, stINT,    "DINT",     0x3C000 },
29
                 { tOPCODE, stINT,    "EINT",     0x3C001 },
30
                 { tOPCODE, stIO,     "IN",       0x04000 },
31
                 { tOPCODE, stCJMP,   "JUMP",     0x34000 },
32
                 { tOPCODE, stIO,     "LD",               0x06000 },
33
                 { tOPCODE, stMOVE,   "MOVE",     0x00000 },
34
                 { tOPCODE, stMOVE,   "OR",       0x0C000 },
35
                 { tOPCODE, stIO,     "OUT",      0x2C000 },
36
                 { tOPCODE, stCRET,   "RET",      0x2A000 },
37
                 { tOPCODE, stINTE,   "RETI",     0x38001 },
38
                 { tOPCODE, stSHIFT,  "RL",       0x20002 },
39
                 { tOPCODE, stSHIFT,  "RR",       0x2000C },
40
                 { tOPCODE, stCSKP,   "SKIP",     0x34000 },
41
                 { tOPCODE, stSHIFT,  "SL0",      0x20006 },
42
                 { tOPCODE, stSHIFT,  "SL1",      0x20007 },
43
                 { tOPCODE, stSHIFT,  "SLA",      0x20000 },
44
                 { tOPCODE, stSHIFT,  "SLX",      0x20004 },
45
                 { tOPCODE, stSHIFT,  "SR0",      0x2000E },
46
                 { tOPCODE, stSHIFT,  "SR1",      0x2000F },
47
                 { tOPCODE, stSHIFT,  "SRA",      0x20008 },
48
                 { tOPCODE, stSHIFT,  "SRX",      0x2000A },
49
                 { tOPCODE, stIO,     "ST",               0x2E000 },
50
                 { tOPCODE, stMOVE,   "SUB",      0x1C000 },
51
                 { tOPCODE, stMOVE,   "SUBC",     0x1E000 },
52
                 { tOPCODE, stMOVE,   "TEST",     0x12000 },
53
                 { tOPCODE, stMOVE,   "XOR",      0x0E000 },
54
                 { tOPCODE, stINST,   "INST",     0x00000 },
55
 
56
                // alternative mnemonics
57
                 { tOPCODE, stMOVE,   "ADDCY",    0x1A000 },
58
                 { tOPCODE, stMOVE,   "COMPARE",  0x14000 },
59
                 { tOPCODE, stINTI,   "DISABLE",  0x3C000 },
60
                 { tOPCODE, stINTI,   "ENABLE",   0x3C001 },
61
                 { tOPCODE, stIO,     "FETCH",    0x06000 },
62
                 { tOPCODE, stIO,     "INPUT",    0x04000 },
63
                 { tOPCODE, stINTE,   "HALT",     0x3C003 },
64
                 { tOPCODE, stMOVE,   "LOAD",     0x00000 },
65
                 { tOPCODE, stIO,     "OUTPUT",   0x2C000 },
66
                 { tOPCODE, stCRET,   "RETURN",   0x2A000 },
67
                 { tOPCODE, stINTE,   "RETURNI",  0x38001 },
68
                 { tOPCODE, stIO,     "STORE",    0x2E000 },
69
                 { tOPCODE, stMOVE,   "SUBCY",    0x1E000 }
70
 
71
                 ,// Wishbone
72
                 { tOPCODE, stIO,     "WBRDSING", 0x02000 },
73
                 { tOPCODE, stIO,     "WBWRSING", 0x08000 }
74
 } ;
75
 
76
const symbol_t conditions[] =
77
        {
78
                 { tCONDITION, stNONE, "Z",       0x01000 },
79
                 { tCONDITION, stNONE, "C",       0x01800 },
80
                 { tCONDITION, stNONE, "NZ",      0x01400 },
81
                 { tCONDITION, stNONE, "NC",      0x01C00 } } ;
82
 
83
const symbol_t indexes[] =
84
        {
85
                 { tVALUE, stINT, "SP",        0x000F0 },
86
                 { tINDEX, stNONE, ".SP",      0x000F4 },
87
                 { tINDEX, stNONE, ".SP++",    0x000F5 },
88
                 { tINDEX, stNONE, ".--SP",    0x000F6 },
89
                 { tINDEX, stNONE, ".-SP+",    0x000F7 },
90
 
91
                 { tVALUE, stINT, "IX",         0x000F8 },
92
                 { tINDEX, stNONE, ".IX",       0x000FC },
93
                 { tINDEX, stNONE, ".IX++",     0x000FD },
94
                 { tINDEX, stNONE, ".--IX",     0x000FE },
95
                 { tINDEX, stNONE, ".-IX+",     0x000FF }
96
} ;
97
 
98
const symbol_t registers[] =
99
        {
100
                 { tREGISTER, stNONE, "S0", 0 },
101
                 { tREGISTER, stNONE, "S1", 1 },
102
                 { tREGISTER, stNONE, "S2", 2 },
103
                 { tREGISTER, stNONE, "S3", 3 },
104
                 { tREGISTER, stNONE, "S4", 4 },
105
                 { tREGISTER, stNONE, "S5", 5 },
106
                 { tREGISTER, stNONE, "S6", 6 },
107
                 { tREGISTER, stNONE, "S7", 7 },
108
                 { tREGISTER, stNONE, "S8", 8 },
109
                 { tREGISTER, stNONE, "S9", 9 },
110
                 { tREGISTER, stNONE, "SA", 0xA },
111
                 { tREGISTER, stNONE, "SB", 0xB },
112
                 { tREGISTER, stNONE, "SC", 0xC },
113
                 { tREGISTER, stNONE, "SD", 0xD },
114
                 { tREGISTER, stNONE, "SE", 0xE },
115
                 { tREGISTER, stNONE, "SF", 0xF },
116
                 { tREGISTER, stNONE, "s0", 0 },
117
                 { tREGISTER, stNONE, "s1", 1 },
118
                 { tREGISTER, stNONE, "s2", 2 },
119
                 { tREGISTER, stNONE, "s3", 3 },
120
                 { tREGISTER, stNONE, "s4", 4 },
121
                 { tREGISTER, stNONE, "s5", 5 },
122
                 { tREGISTER, stNONE, "s6", 6 },
123
                 { tREGISTER, stNONE, "s7", 7 },
124
                 { tREGISTER, stNONE, "s8", 8 },
125
                 { tREGISTER, stNONE, "s9", 9 },
126
                 { tREGISTER, stNONE, "sA", 0xA },
127
                 { tREGISTER, stNONE, "sB", 0xB },
128
                 { tREGISTER, stNONE, "sC", 0xC },
129
                 { tREGISTER, stNONE, "sD", 0xD },
130
                 { tREGISTER, stNONE, "sE", 0xE },
131
                 { tREGISTER, stNONE, "sF", 0xF } } ;

powered by: WebSVN 2.1.0

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