Annotation of qemu/target-microblaze/microblaze-decode.h, revision 1.1.1.3

1.1       root        1: /*
                      2:  *  MicroBlaze insn decoding macros.
                      3:  *
                      4:  *  Copyright (c) 2009 Edgar E. Iglesias <[email protected]>
                      5:  *
                      6:  * This library is free software; you can redistribute it and/or
                      7:  * modify it under the terms of the GNU Lesser General Public
                      8:  * License as published by the Free Software Foundation; either
                      9:  * version 2 of the License, or (at your option) any later version.
                     10:  *
                     11:  * This library 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 GNU
                     14:  * Lesser General Public License for more details.
                     15:  *
                     16:  * You should have received a copy of the GNU Lesser General Public
                     17:  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
                     18:  */
                     19: 
                     20: /* Convenient binary macros.  */
                     21: #define HEX__(n) 0x##n##LU
                     22: #define B8__(x) ((x&0x0000000FLU)?1:0) \
                     23:                  + ((x&0x000000F0LU)?2:0) \
                     24:                  + ((x&0x00000F00LU)?4:0) \
                     25:                  + ((x&0x0000F000LU)?8:0) \
                     26:                  + ((x&0x000F0000LU)?16:0) \
                     27:                  + ((x&0x00F00000LU)?32:0) \
                     28:                  + ((x&0x0F000000LU)?64:0) \
                     29:                  + ((x&0xF0000000LU)?128:0)
                     30: #define B8(d) ((unsigned char)B8__(HEX__(d)))
                     31: 
1.1.1.2   root       32: /* Decode logic, value and mask.  */
1.1       root       33: #define DEC_ADD     {B8(00000000), B8(00110001)}
                     34: #define DEC_SUB     {B8(00000001), B8(00110001)}
                     35: #define DEC_AND     {B8(00100001), B8(00110101)}
                     36: #define DEC_XOR     {B8(00100010), B8(00110111)}
                     37: #define DEC_OR      {B8(00100000), B8(00110111)}
                     38: #define DEC_BIT     {B8(00100100), B8(00111111)}
                     39: #define DEC_MSR     {B8(00100101), B8(00111111)}
                     40: 
                     41: #define DEC_BARREL  {B8(00010001), B8(00110111)}
                     42: #define DEC_MUL     {B8(00010000), B8(00110111)}
                     43: #define DEC_DIV     {B8(00010010), B8(00110111)}
1.1.1.2   root       44: #define DEC_FPU     {B8(00010110), B8(00111111)}
1.1       root       45: 
                     46: #define DEC_LD      {B8(00110000), B8(00110100)}
                     47: #define DEC_ST      {B8(00110100), B8(00110100)}
                     48: #define DEC_IMM     {B8(00101100), B8(00111111)}
                     49: 
                     50: #define DEC_BR      {B8(00100110), B8(00110111)}
                     51: #define DEC_BCC     {B8(00100111), B8(00110111)}
                     52: #define DEC_RTS     {B8(00101101), B8(00111111)}
1.1.1.3 ! root       53: 
        !            54: #define DEC_STREAM  {B8(00010011), B8(00110111)}
        !            55: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.