root / target-microblaze / microblaze-decode.h @ a8a358bf
History | View | Annotate | Download (2 kB)
1 | 4acb54ba | Edgar E. Iglesias | /*
|
---|---|---|---|
2 | 4acb54ba | Edgar E. Iglesias | * MicroBlaze insn decoding macros.
|
3 | 4acb54ba | Edgar E. Iglesias | *
|
4 | 4acb54ba | Edgar E. Iglesias | * Copyright (c) 2009 Edgar E. Iglesias <edgar.iglesias@gmail.com>
|
5 | 4acb54ba | Edgar E. Iglesias | *
|
6 | 4acb54ba | Edgar E. Iglesias | * This library is free software; you can redistribute it and/or
|
7 | 4acb54ba | Edgar E. Iglesias | * modify it under the terms of the GNU Lesser General Public
|
8 | 4acb54ba | Edgar E. Iglesias | * License as published by the Free Software Foundation; either
|
9 | 4acb54ba | Edgar E. Iglesias | * version 2 of the License, or (at your option) any later version.
|
10 | 4acb54ba | Edgar E. Iglesias | *
|
11 | 4acb54ba | Edgar E. Iglesias | * This library is distributed in the hope that it will be useful,
|
12 | 4acb54ba | Edgar E. Iglesias | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 | 4acb54ba | Edgar E. Iglesias | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14 | 4acb54ba | Edgar E. Iglesias | * Lesser General Public License for more details.
|
15 | 4acb54ba | Edgar E. Iglesias | *
|
16 | 4acb54ba | Edgar E. Iglesias | * You should have received a copy of the GNU Lesser General Public
|
17 | 8167ee88 | Blue Swirl | * License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
18 | 4acb54ba | Edgar E. Iglesias | */
|
19 | 4acb54ba | Edgar E. Iglesias | |
20 | 4acb54ba | Edgar E. Iglesias | /* Convenient binary macros. */
|
21 | 4acb54ba | Edgar E. Iglesias | #define HEX__(n) 0x##n##LU |
22 | 4acb54ba | Edgar E. Iglesias | #define B8__(x) ((x&0x0000000FLU)?1:0) \ |
23 | 4acb54ba | Edgar E. Iglesias | + ((x&0x000000F0LU)?2:0) \ |
24 | 4acb54ba | Edgar E. Iglesias | + ((x&0x00000F00LU)?4:0) \ |
25 | 4acb54ba | Edgar E. Iglesias | + ((x&0x0000F000LU)?8:0) \ |
26 | 4acb54ba | Edgar E. Iglesias | + ((x&0x000F0000LU)?16:0) \ |
27 | 4acb54ba | Edgar E. Iglesias | + ((x&0x00F00000LU)?32:0) \ |
28 | 4acb54ba | Edgar E. Iglesias | + ((x&0x0F000000LU)?64:0) \ |
29 | 4acb54ba | Edgar E. Iglesias | + ((x&0xF0000000LU)?128:0) |
30 | 4acb54ba | Edgar E. Iglesias | #define B8(d) ((unsigned char)B8__(HEX__(d))) |
31 | 4acb54ba | Edgar E. Iglesias | |
32 | 4acb54ba | Edgar E. Iglesias | /* Decode logic, mask and value. */
|
33 | 4acb54ba | Edgar E. Iglesias | #define DEC_ADD {B8(00000000), B8(00110001)} |
34 | 4acb54ba | Edgar E. Iglesias | #define DEC_SUB {B8(00000001), B8(00110001)} |
35 | 4acb54ba | Edgar E. Iglesias | #define DEC_AND {B8(00100001), B8(00110101)} |
36 | 4acb54ba | Edgar E. Iglesias | #define DEC_XOR {B8(00100010), B8(00110111)} |
37 | 4acb54ba | Edgar E. Iglesias | #define DEC_OR {B8(00100000), B8(00110111)} |
38 | 4acb54ba | Edgar E. Iglesias | #define DEC_BIT {B8(00100100), B8(00111111)} |
39 | 4acb54ba | Edgar E. Iglesias | #define DEC_MSR {B8(00100101), B8(00111111)} |
40 | 4acb54ba | Edgar E. Iglesias | |
41 | 4acb54ba | Edgar E. Iglesias | #define DEC_BARREL {B8(00010001), B8(00110111)} |
42 | 4acb54ba | Edgar E. Iglesias | #define DEC_MUL {B8(00010000), B8(00110111)} |
43 | 4acb54ba | Edgar E. Iglesias | #define DEC_DIV {B8(00010010), B8(00110111)} |
44 | 4acb54ba | Edgar E. Iglesias | |
45 | 4acb54ba | Edgar E. Iglesias | #define DEC_LD {B8(00110000), B8(00110100)} |
46 | 4acb54ba | Edgar E. Iglesias | #define DEC_ST {B8(00110100), B8(00110100)} |
47 | 4acb54ba | Edgar E. Iglesias | #define DEC_IMM {B8(00101100), B8(00111111)} |
48 | 4acb54ba | Edgar E. Iglesias | |
49 | 4acb54ba | Edgar E. Iglesias | #define DEC_BR {B8(00100110), B8(00110111)} |
50 | 4acb54ba | Edgar E. Iglesias | #define DEC_BCC {B8(00100111), B8(00110111)} |
51 | 4acb54ba | Edgar E. Iglesias | #define DEC_RTS {B8(00101101), B8(00111111)} |