qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

crisv10-decode.h (3560B)


      1 /*
      2  *  CRISv10 insn decoding macros.
      3  *
      4  *  Copyright (c) 2010 AXIS Communications AB
      5  *  Written by Edgar E. Iglesias.
      6  *
      7  * This library is free software; you can redistribute it and/or
      8  * modify it under the terms of the GNU Lesser General Public
      9  * License as published by the Free Software Foundation; either
     10  * version 2.1 of the License, or (at your option) any later version.
     11  *
     12  * This library is distributed in the hope that it will be useful,
     13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     15  * Lesser General Public License for more details.
     16  *
     17  * You should have received a copy of the GNU Lesser General Public
     18  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
     19  */
     20 
     21 #ifndef TARGET_CRIS_CRISV10_DECODE_H
     22 #define TARGET_CRIS_CRISV10_DECODE_H
     23 
     24 #define CRISV10_MODE_QIMMEDIATE  0
     25 #define CRISV10_MODE_REG         1
     26 #define CRISV10_MODE_INDIRECT    2
     27 #define CRISV10_MODE_AUTOINC     3
     28 
     29 /* Quick Immediate.  */
     30 #define CRISV10_QIMM_BCC_R0      0
     31 #define CRISV10_QIMM_BCC_R1      1
     32 #define CRISV10_QIMM_BCC_R2      2
     33 #define CRISV10_QIMM_BCC_R3      3
     34 
     35 #define CRISV10_QIMM_BDAP_R0     4
     36 #define CRISV10_QIMM_BDAP_R1     5
     37 #define CRISV10_QIMM_BDAP_R2     6
     38 #define CRISV10_QIMM_BDAP_R3     7
     39 
     40 #define CRISV10_QIMM_ADDQ        8
     41 #define CRISV10_QIMM_MOVEQ       9
     42 #define CRISV10_QIMM_SUBQ       10
     43 #define CRISV10_QIMM_CMPQ       11
     44 #define CRISV10_QIMM_ANDQ       12
     45 #define CRISV10_QIMM_ORQ        13
     46 #define CRISV10_QIMM_ASHQ       14
     47 #define CRISV10_QIMM_LSHQ       15
     48 
     49 
     50 #define CRISV10_REG_ADDX         0
     51 #define CRISV10_REG_MOVX         1
     52 #define CRISV10_REG_SUBX         2
     53 #define CRISV10_REG_LSL          3
     54 #define CRISV10_REG_ADDI         4
     55 #define CRISV10_REG_BIAP         5
     56 #define CRISV10_REG_NEG          6
     57 #define CRISV10_REG_BOUND        7
     58 #define CRISV10_REG_ADD          8
     59 #define CRISV10_REG_MOVE_R       9
     60 #define CRISV10_REG_MOVE_SPR_R   9
     61 #define CRISV10_REG_MOVE_R_SPR   8
     62 #define CRISV10_REG_SUB         10
     63 #define CRISV10_REG_CMP         11
     64 #define CRISV10_REG_AND         12
     65 #define CRISV10_REG_OR          13
     66 #define CRISV10_REG_ASR         14
     67 #define CRISV10_REG_LSR         15
     68 
     69 #define CRISV10_REG_BTST         3
     70 #define CRISV10_REG_SCC          4
     71 #define CRISV10_REG_SETF         6
     72 #define CRISV10_REG_CLEARF       7
     73 #define CRISV10_REG_BIAP         5
     74 #define CRISV10_REG_ABS         10
     75 #define CRISV10_REG_DSTEP       11
     76 #define CRISV10_REG_LZ          12
     77 #define CRISV10_REG_NOT         13
     78 #define CRISV10_REG_SWAP        13
     79 #define CRISV10_REG_XOR         14
     80 #define CRISV10_REG_MSTEP       15
     81 
     82 /* Indirect, var size.  */
     83 #define CRISV10_IND_TEST        14
     84 #define CRISV10_IND_MUL          4
     85 #define CRISV10_IND_BDAP_M       5
     86 #define CRISV10_IND_ADD          8
     87 #define CRISV10_IND_MOVE_M_R     9
     88 
     89 
     90 /* indirect fixed size.  */
     91 #define CRISV10_IND_ADDX         0
     92 #define CRISV10_IND_MOVX         1
     93 #define CRISV10_IND_SUBX         2
     94 #define CRISV10_IND_CMPX         3
     95 #define CRISV10_IND_JUMP_M       4
     96 #define CRISV10_IND_DIP          5
     97 #define CRISV10_IND_JUMP_R       6
     98 #define CRISV17_IND_ADDC         6
     99 #define CRISV10_IND_BOUND        7
    100 #define CRISV10_IND_BCC_M        7
    101 #define CRISV10_IND_MOVE_M_SPR   8
    102 #define CRISV10_IND_MOVE_SPR_M   9
    103 #define CRISV10_IND_SUB         10
    104 #define CRISV10_IND_CMP         11
    105 #define CRISV10_IND_AND         12
    106 #define CRISV10_IND_OR          13
    107 #define CRISV10_IND_MOVE_R_M    15
    108 
    109 #define CRISV10_IND_MOVEM_M_R    14
    110 #define CRISV10_IND_MOVEM_R_M    15
    111 
    112 #endif