[88] | 1 | /* |
---|
| 2 | * $Id: Types.cpp 101 2009-01-15 17:19:08Z rosiere $ |
---|
| 3 | * |
---|
| 4 | * [ Description ] |
---|
| 5 | * |
---|
| 6 | */ |
---|
| 7 | |
---|
| 8 | #include "Behavioural/include/Types.h" |
---|
| 9 | #include "Common/include/Translation.h" |
---|
| 10 | |
---|
| 11 | namespace morpheo { |
---|
| 12 | namespace behavioural { |
---|
| 13 | |
---|
| 14 | #undef FUNCTION |
---|
| 15 | #define FUNCTION "instruction_information" |
---|
| 16 | instruction_t instruction_information (uint32_t instruction) |
---|
| 17 | { |
---|
| 18 | switch (instruction) |
---|
| 19 | { |
---|
| 20 | case INSTRUCTION_L_ADD : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_ADD ,ORBIS32,1); |
---|
[100] | 21 | case INSTRUCTION_L_ADDC : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_ADDC ,ORBIS32,1); |
---|
[88] | 22 | case INSTRUCTION_L_ADDI : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_ADD ,ORBIS32,1); |
---|
[100] | 23 | case INSTRUCTION_L_ADDIC : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_ADDC ,ORBIS32,1); |
---|
[88] | 24 | case INSTRUCTION_L_AND : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_AND ,ORBIS32,1); |
---|
| 25 | case INSTRUCTION_L_ANDI : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_AND ,ORBIS32,1); |
---|
| 26 | case INSTRUCTION_L_BF : return instruction_t (TYPE_BRANCH ,OPERATION_BRANCH_L_TEST_F ,ORBIS32,1); |
---|
| 27 | case INSTRUCTION_L_BNF : return instruction_t (TYPE_BRANCH ,OPERATION_BRANCH_L_TEST_NF ,ORBIS32,1); |
---|
| 28 | case INSTRUCTION_L_CMOV : return instruction_t (TYPE_MOVE ,OPERATION_MOVE_L_CMOV ,ORBIS32,2); |
---|
[101] | 29 | // case INSTRUCTION_L_CSYNC : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_CSYNC ,ORBIS32,2); |
---|
| 30 | case INSTRUCTION_L_CSYNC : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_SYNCHRONIZATION,ORBIS32,2); |
---|
[88] | 31 | case INSTRUCTION_L_CUST1 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_1 ,ORBIS32,2); |
---|
| 32 | case INSTRUCTION_L_CUST2 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_2 ,ORBIS32,2); |
---|
| 33 | case INSTRUCTION_L_CUST3 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_3 ,ORBIS32,2); |
---|
| 34 | case INSTRUCTION_L_CUST4 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_4 ,ORBIS32,2); |
---|
| 35 | case INSTRUCTION_L_CUST5 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_5 ,ORBIS32,2); |
---|
| 36 | case INSTRUCTION_L_CUST6 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_6 ,ORBIS32,2); |
---|
| 37 | case INSTRUCTION_L_CUST7 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_7 ,ORBIS32,2); |
---|
| 38 | case INSTRUCTION_L_CUST8 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_L_8 ,ORBIS32,2); |
---|
| 39 | case INSTRUCTION_L_DIV : return instruction_t (TYPE_DIV ,OPERATION_DIV_L_DIV ,ORBIS32,2); |
---|
| 40 | case INSTRUCTION_L_DIVU : return instruction_t (TYPE_DIV ,OPERATION_DIV_L_DIVU ,ORBIS32,2); |
---|
| 41 | case INSTRUCTION_L_EXTBS : return instruction_t (TYPE_EXTEND ,OPERATION_EXTEND_L_EXTEND_S ,ORBIS32,2); |
---|
| 42 | case INSTRUCTION_L_EXTBZ : return instruction_t (TYPE_EXTEND ,OPERATION_EXTEND_L_EXTEND_Z ,ORBIS32,2); |
---|
| 43 | case INSTRUCTION_L_EXTHS : return instruction_t (TYPE_EXTEND ,OPERATION_EXTEND_L_EXTEND_S ,ORBIS32,2); |
---|
| 44 | case INSTRUCTION_L_EXTHZ : return instruction_t (TYPE_EXTEND ,OPERATION_EXTEND_L_EXTEND_Z ,ORBIS32,2); |
---|
| 45 | case INSTRUCTION_L_EXTWS : return instruction_t (TYPE_EXTEND ,OPERATION_EXTEND_L_EXTEND_S ,ORBIS64,2); |
---|
| 46 | case INSTRUCTION_L_EXTWZ : return instruction_t (TYPE_EXTEND ,OPERATION_EXTEND_L_EXTEND_Z ,ORBIS64,2); |
---|
| 47 | case INSTRUCTION_L_FF1 : return instruction_t (TYPE_FIND ,OPERATION_FIND_L_FF1 ,ORBIS32,2); |
---|
| 48 | case INSTRUCTION_L_FL1 : return instruction_t (TYPE_FIND ,OPERATION_FIND_L_FL1 ,ORBIS32,2); |
---|
| 49 | case INSTRUCTION_L_J : return instruction_t (TYPE_BRANCH ,OPERATION_BRANCH_NONE ,ORBIS32,1); |
---|
| 50 | case INSTRUCTION_L_JAL : return instruction_t (TYPE_BRANCH ,OPERATION_BRANCH_L_JALR ,ORBIS32,1); |
---|
| 51 | case INSTRUCTION_L_JALR : return instruction_t (TYPE_BRANCH ,OPERATION_BRANCH_L_JALR ,ORBIS32,1); |
---|
| 52 | case INSTRUCTION_L_JR : return instruction_t (TYPE_BRANCH ,OPERATION_BRANCH_L_JALR ,ORBIS32,1); |
---|
| 53 | case INSTRUCTION_L_LBS : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_8_S ,ORBIS32,1); |
---|
| 54 | case INSTRUCTION_L_LBZ : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_8_Z ,ORBIS32,1); |
---|
| 55 | case INSTRUCTION_L_LD : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_64_S ,ORBIS64,1); |
---|
| 56 | case INSTRUCTION_L_LHS : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_16_S ,ORBIS32,1); |
---|
| 57 | case INSTRUCTION_L_LHZ : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_16_Z ,ORBIS32,1); |
---|
| 58 | case INSTRUCTION_L_LWS : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_32_S ,ORBIS32,1); |
---|
| 59 | case INSTRUCTION_L_LWZ : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_LOAD_32_Z ,ORBIS32,1); |
---|
| 60 | case INSTRUCTION_L_MAC : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MAC ,ORBIS32,2); |
---|
| 61 | case INSTRUCTION_L_MACI : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MAC ,ORBIS32,2); |
---|
| 62 | case INSTRUCTION_L_MACRC : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MACRC ,ORBIS32,2); |
---|
| 63 | case INSTRUCTION_L_MFSPR : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MFSPR ,ORBIS32,1); |
---|
| 64 | case INSTRUCTION_L_MOVHI : return instruction_t (TYPE_MOVE ,OPERATION_MOVE_L_MOVHI ,ORBIS32,1); |
---|
| 65 | case INSTRUCTION_L_MSB : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MSB ,ORBIS32,2); |
---|
[101] | 66 | // case INSTRUCTION_L_MSYNC : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MSYNC ,ORBIS32,2); |
---|
| 67 | case INSTRUCTION_L_MSYNC : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_SYNCHRONIZATION,ORBIS32,2); |
---|
[88] | 68 | case INSTRUCTION_L_MTSPR : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_MTSPR ,ORBIS32,1); |
---|
| 69 | case INSTRUCTION_L_MUL : return instruction_t (TYPE_MUL ,OPERATION_MUL_L_MUL ,ORBIS32,1); |
---|
| 70 | case INSTRUCTION_L_MULI : return instruction_t (TYPE_MUL ,OPERATION_MUL_L_MUL ,ORBIS32,1); |
---|
| 71 | case INSTRUCTION_L_MULU : return instruction_t (TYPE_MUL ,OPERATION_MUL_L_MULU ,ORBIS32,1); |
---|
| 72 | case INSTRUCTION_L_NOP : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORBIS32,1); |
---|
| 73 | case INSTRUCTION_L_OR : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_OR ,ORBIS32,1); |
---|
| 74 | case INSTRUCTION_L_ORI : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_OR ,ORBIS32,1); |
---|
[101] | 75 | // case INSTRUCTION_L_PSYNC : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_PSYNC ,ORBIS32,2); |
---|
| 76 | case INSTRUCTION_L_PSYNC : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_SYNCHRONIZATION,ORBIS32,2); |
---|
[88] | 77 | case INSTRUCTION_L_RFE : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_RFE ,ORBIS32,1); |
---|
| 78 | case INSTRUCTION_L_ROR : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_ROR ,ORBIS32,2); |
---|
| 79 | case INSTRUCTION_L_RORI : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_ROR ,ORBIS32,2); |
---|
| 80 | case INSTRUCTION_L_SB : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_STORE_8 ,ORBIS32,1); |
---|
| 81 | case INSTRUCTION_L_SD : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_STORE_64 ,ORBIS64,1); |
---|
| 82 | case INSTRUCTION_L_SFEQ : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFEQ ,ORBIS32,1); |
---|
| 83 | case INSTRUCTION_L_SFEQI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFEQ ,ORBIS32,1); |
---|
| 84 | case INSTRUCTION_L_SFGES : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGES ,ORBIS32,1); |
---|
| 85 | case INSTRUCTION_L_SFGESI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGES ,ORBIS32,2); |
---|
| 86 | case INSTRUCTION_L_SFGEU : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGEU ,ORBIS32,1); |
---|
| 87 | case INSTRUCTION_L_SFGEUI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGEU ,ORBIS32,2); |
---|
| 88 | case INSTRUCTION_L_SFGTS : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGTS ,ORBIS32,1); |
---|
| 89 | case INSTRUCTION_L_SFGTSI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGTS ,ORBIS32,2); |
---|
| 90 | case INSTRUCTION_L_SFGTU : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGTU ,ORBIS32,1); |
---|
| 91 | case INSTRUCTION_L_SFGTUI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFGTU ,ORBIS32,2); |
---|
| 92 | case INSTRUCTION_L_SFLES : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLES ,ORBIS32,1); |
---|
| 93 | case INSTRUCTION_L_SFLESI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLES ,ORBIS32,2); |
---|
| 94 | case INSTRUCTION_L_SFLEU : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLEU ,ORBIS32,1); |
---|
| 95 | case INSTRUCTION_L_SFLEUI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLEU ,ORBIS32,2); |
---|
| 96 | case INSTRUCTION_L_SFLTS : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLTS ,ORBIS32,1); |
---|
| 97 | case INSTRUCTION_L_SFLTSI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLTS ,ORBIS32,2); |
---|
| 98 | case INSTRUCTION_L_SFLTU : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLTU ,ORBIS32,1); |
---|
| 99 | case INSTRUCTION_L_SFLTUI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFLTU ,ORBIS32,2); |
---|
| 100 | case INSTRUCTION_L_SFNE : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFNE ,ORBIS32,1); |
---|
| 101 | case INSTRUCTION_L_SFNEI : return instruction_t (TYPE_TEST ,OPERATION_TEST_L_SFNE ,ORBIS32,2); |
---|
| 102 | case INSTRUCTION_L_SH : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_STORE_16 ,ORBIS32,1); |
---|
| 103 | case INSTRUCTION_L_SLL : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_SLL ,ORBIS32,1); |
---|
| 104 | case INSTRUCTION_L_SLLI : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_SLL ,ORBIS32,1); |
---|
| 105 | case INSTRUCTION_L_SRA : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_SRA ,ORBIS32,1); |
---|
| 106 | case INSTRUCTION_L_SRAI : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_SRA ,ORBIS32,1); |
---|
| 107 | case INSTRUCTION_L_SRL : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_SRL ,ORBIS32,1); |
---|
| 108 | case INSTRUCTION_L_SRLI : return instruction_t (TYPE_SHIFT ,OPERATION_SHIFT_L_SRL ,ORBIS32,1); |
---|
| 109 | case INSTRUCTION_L_SUB : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_SUB ,ORBIS32,1); |
---|
| 110 | case INSTRUCTION_L_SW : return instruction_t (TYPE_MEMORY ,OPERATION_MEMORY_STORE_32 ,ORBIS32,1); |
---|
| 111 | case INSTRUCTION_L_SYS : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_SYS ,ORBIS32,1); |
---|
| 112 | case INSTRUCTION_L_TRAP : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_TRAP ,ORBIS32,2); |
---|
| 113 | case INSTRUCTION_L_XOR : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_XOR ,ORBIS32,1); |
---|
| 114 | case INSTRUCTION_L_XORI : return instruction_t (TYPE_ALU ,OPERATION_ALU_L_XOR ,ORBIS32,1); |
---|
| 115 | |
---|
| 116 | case INSTRUCTION_LF_ADD_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
| 117 | case INSTRUCTION_LF_ADD_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
| 118 | case INSTRUCTION_LF_CUST1_D : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_LF_1_D ,ORFPX64,2); |
---|
| 119 | case INSTRUCTION_LF_CUST1_S : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_LF_1_S ,ORFPX32,2); |
---|
| 120 | case INSTRUCTION_LF_DIV_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,2); |
---|
| 121 | case INSTRUCTION_LF_DIV_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,2); |
---|
| 122 | case INSTRUCTION_LF_FTOI_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
| 123 | case INSTRUCTION_LF_FTOI_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
| 124 | case INSTRUCTION_LF_ITOF_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
| 125 | case INSTRUCTION_LF_ITOF_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
| 126 | case INSTRUCTION_LF_MADD_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,2); |
---|
| 127 | case INSTRUCTION_LF_MADD_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,2); |
---|
| 128 | case INSTRUCTION_LF_MUL_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
| 129 | case INSTRUCTION_LF_MUL_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
| 130 | case INSTRUCTION_LF_REM_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,2); |
---|
| 131 | case INSTRUCTION_LF_REM_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,2); |
---|
| 132 | case INSTRUCTION_LF_SFEQ_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
| 133 | case INSTRUCTION_LF_SFEQ_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
| 134 | case INSTRUCTION_LF_SFGE_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
| 135 | case INSTRUCTION_LF_SFGE_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
| 136 | case INSTRUCTION_LF_SFGT_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
| 137 | case INSTRUCTION_LF_SFGT_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
| 138 | case INSTRUCTION_LF_SFLE_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
| 139 | case INSTRUCTION_LF_SFLE_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
| 140 | case INSTRUCTION_LF_SFLT_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
| 141 | case INSTRUCTION_LF_SFLT_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
| 142 | case INSTRUCTION_LF_SFNE_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
| 143 | case INSTRUCTION_LF_SFNE_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
| 144 | case INSTRUCTION_LF_SUB_D : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX64,1); |
---|
| 145 | case INSTRUCTION_LF_SUB_S : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORFPX32,1); |
---|
| 146 | |
---|
| 147 | case INSTRUCTION_LV_ADD_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 148 | case INSTRUCTION_LV_ADD_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 149 | case INSTRUCTION_LV_ADDS_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 150 | case INSTRUCTION_LV_ADDS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 151 | case INSTRUCTION_LV_ADDU_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 152 | case INSTRUCTION_LV_ADDU_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 153 | case INSTRUCTION_LV_ADDUS_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 154 | case INSTRUCTION_LV_ADDUS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 155 | case INSTRUCTION_LV_ALL_EQ_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 156 | case INSTRUCTION_LV_ALL_EQ_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 157 | case INSTRUCTION_LV_ALL_GE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 158 | case INSTRUCTION_LV_ALL_GE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 159 | case INSTRUCTION_LV_ALL_GT_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 160 | case INSTRUCTION_LV_ALL_GT_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 161 | case INSTRUCTION_LV_ALL_LE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 162 | case INSTRUCTION_LV_ALL_LE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 163 | case INSTRUCTION_LV_ALL_LT_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 164 | case INSTRUCTION_LV_ALL_LT_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 165 | case INSTRUCTION_LV_ALL_NE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 166 | case INSTRUCTION_LV_ALL_NE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 167 | case INSTRUCTION_LV_AND : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 168 | case INSTRUCTION_LV_ANY_EQ_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 169 | case INSTRUCTION_LV_ANY_EQ_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 170 | case INSTRUCTION_LV_ANY_GE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 171 | case INSTRUCTION_LV_ANY_GE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 172 | case INSTRUCTION_LV_ANY_GT_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 173 | case INSTRUCTION_LV_ANY_GT_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 174 | case INSTRUCTION_LV_ANY_LE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 175 | case INSTRUCTION_LV_ANY_LE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 176 | case INSTRUCTION_LV_ANY_LT_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 177 | case INSTRUCTION_LV_ANY_LT_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 178 | case INSTRUCTION_LV_ANY_NE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 179 | case INSTRUCTION_LV_ANY_NE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 180 | case INSTRUCTION_LV_AVG_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 181 | case INSTRUCTION_LV_AVG_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 182 | case INSTRUCTION_LV_CMP_EQ_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 183 | case INSTRUCTION_LV_CMP_EQ_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 184 | case INSTRUCTION_LV_CMP_GE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 185 | case INSTRUCTION_LV_CMP_GE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 186 | case INSTRUCTION_LV_CMP_GT_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 187 | case INSTRUCTION_LV_CMP_GT_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 188 | case INSTRUCTION_LV_CMP_LE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 189 | case INSTRUCTION_LV_CMP_LE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 190 | case INSTRUCTION_LV_CMP_LT_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 191 | case INSTRUCTION_LV_CMP_LT_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 192 | case INSTRUCTION_LV_CMP_NE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 193 | case INSTRUCTION_LV_CMP_NE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 194 | case INSTRUCTION_LV_CUST1 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_LV_1 ,ORVDX64,2); |
---|
| 195 | case INSTRUCTION_LV_CUST2 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_LV_2 ,ORVDX64,2); |
---|
| 196 | case INSTRUCTION_LV_CUST3 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_LV_3 ,ORVDX64,2); |
---|
| 197 | case INSTRUCTION_LV_CUST4 : return instruction_t (TYPE_CUSTOM ,OPERATION_CUSTOM_LV_4 ,ORVDX64,2); |
---|
| 198 | case INSTRUCTION_LV_MADDS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 199 | case INSTRUCTION_LV_MAX_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 200 | case INSTRUCTION_LV_MAX_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 201 | case INSTRUCTION_LV_MERGE_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 202 | case INSTRUCTION_LV_MERGE_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 203 | case INSTRUCTION_LV_MIN_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 204 | case INSTRUCTION_LV_MIN_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 205 | case INSTRUCTION_LV_MSUBS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 206 | case INSTRUCTION_LV_MULS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,2); |
---|
| 207 | case INSTRUCTION_LV_NAND : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 208 | case INSTRUCTION_LV_NOR : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 209 | case INSTRUCTION_LV_OR : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 210 | case INSTRUCTION_LV_PACK_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 211 | case INSTRUCTION_LV_PACK_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 212 | case INSTRUCTION_LV_PACKS_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 213 | case INSTRUCTION_LV_PACKS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 214 | case INSTRUCTION_LV_PACKUS_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 215 | case INSTRUCTION_LV_PACKUS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 216 | case INSTRUCTION_LV_PERM_N : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 217 | case INSTRUCTION_LV_RL_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 218 | case INSTRUCTION_LV_RL_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 219 | case INSTRUCTION_LV_SLL : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 220 | case INSTRUCTION_LV_SLL_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 221 | case INSTRUCTION_LV_SLL_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 222 | case INSTRUCTION_LV_SRA_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 223 | case INSTRUCTION_LV_SRA_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 224 | case INSTRUCTION_LV_SRL : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 225 | case INSTRUCTION_LV_SRL_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 226 | case INSTRUCTION_LV_SRL_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 227 | case INSTRUCTION_LV_SUB_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 228 | case INSTRUCTION_LV_SUB_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 229 | case INSTRUCTION_LV_SUBS_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 230 | case INSTRUCTION_LV_SUBS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 231 | case INSTRUCTION_LV_SUBU_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 232 | case INSTRUCTION_LV_SUBU_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 233 | case INSTRUCTION_LV_SUBUS_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 234 | case INSTRUCTION_LV_SUBUS_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 235 | case INSTRUCTION_LV_UNPACK_B : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 236 | case INSTRUCTION_LV_UNPACK_H : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 237 | case INSTRUCTION_LV_XOR : return instruction_t (TYPE_SPECIAL,OPERATION_SPECIAL_L_NOP ,ORVDX64,1); |
---|
| 238 | |
---|
| 239 | default : throw (ERRORMORPHEO (FUNCTION,_("Unknow instruction"))); |
---|
| 240 | } |
---|
| 241 | }; |
---|
| 242 | |
---|
| 243 | #undef FUNCTION |
---|
| 244 | #define FUNCTION "instruction_size_data" |
---|
| 245 | uint32_t instruction_size_data (uint32_t instruction) |
---|
| 246 | { |
---|
| 247 | ISA subset = instruction_information(instruction)._isa_subset; |
---|
| 248 | |
---|
| 249 | switch(subset) |
---|
| 250 | { |
---|
| 251 | case ORBIS32 : |
---|
| 252 | case ORFPX32 : return 32; |
---|
| 253 | case ORBIS64 : |
---|
| 254 | case ORFPX64 : |
---|
| 255 | case ORVDX64 : return 64; |
---|
| 256 | default : throw (ERRORMORPHEO (FUNCTION,_("Unknow subset"))); |
---|
| 257 | } |
---|
| 258 | } |
---|
| 259 | |
---|
| 260 | }; // end namespace behavioural |
---|
| 261 | }; // end namespace morpheo |
---|