#ifndef morpheo_behavioural_Constants_h #define morpheo_behavioural_Constants_h /* WARNING : I Use reserved exception : 0x10 - EXCEPTION_MEMORY_MISS_SPECULATION - Load miss speculation 0x11 - EXCEPTION_MEMORY_LOAD_SPECULATIVE - The load is speculative : write in register file, but don't commit 0x12 - EXCEPTION_ALU_SPR_ACCESS_INVALID - SPR present in ALU but not compatible privilege 0x13 - EXCEPTION_ALU_SPR_ACCESS_MUST_READ - SPR not present in ALU 0x14 - EXCEPTION_ALU_SPR_ACCESS_MUST_WRITE - SPR not present in ALU I Use reserved SPR : [0][21] - SPR_CID : Context Id [0][22] - SPR_TID : Thread Id [0][23] - SPR_TSR : Thread Status Register (Priority) */ #include "Common/include/ToString.h" namespace morpheo { namespace behavioural { # define SET_FLAG( x,pos) {(x) |= (1<<(pos));} while (0) # define UNSET_FLAG( x,pos) {(x) &= ~(1<<(pos));} while (0) # define IS_SET_FLAG( x,pos) (((x) & (1<<(pos))) != 0) # define IS_UNSET_FLAG(x,pos) (((x) & (1<<(pos))) == 0) # define CHANGE_FLAG( x,pos,f) \ { \ if (f) \ {SET_FLAG(x,pos);} \ else \ {UNSET_FLAG(x,pos);} \ } while (0) //=========================================================[ Type ]===== typedef enum { TYPE_ALU = 0x0, // 0000 - unit multiple TYPE_SHIFT = 0x1, // 0000 - unit multiple TYPE_MOVE = 0x2, // 0000 - unit multiple TYPE_TEST = 0x3, // 0000 - unit multiple TYPE_MUL = 0x4, // 0000 - unit multiple TYPE_DIV = 0x5, // 0000 - unit multiple, type optionnal TYPE_EXTEND = 0x6, // 0000 - unit multiple, type optionnal TYPE_FIND = 0x7, // 0000 - unit multiple, type optionnal TYPE_SPECIAL = 0x8, // 0000 - unit uniq TYPE_CUSTOM = 0x9, // 0000 - unit uniq , type optionnal TYPE_BRANCH = 0xa, // 0000 - unit multiple TYPE_MEMORY = 0xb, // 0000 - unit uniq , type exclusive TYPE_INVALID = 0xf // 1111 - none } type_t; //#define NB_TYPE 11 # define SIZE_TYPE 5 # define MAX_TYPE (1< incondionnal # define BRANCH_STATE_SPEC_NTAKE 0x2 // 1 0 # define BRANCH_STATE_SPEC_TAKE 0x3 // 1 1 //---------------------------------------------[ branch_condition ]----- # define SIZE_BRANCH_CONDITION 4 # define MAX_BRANCH_CONDITION (1< inline std::string toString(const morpheo::behavioural::type_t& x) { switch (x) { case morpheo::behavioural::TYPE_ALU : return "ALU" ; case morpheo::behavioural::TYPE_SHIFT : return "SHIFT" ; case morpheo::behavioural::TYPE_MOVE : return "MOVE" ; case morpheo::behavioural::TYPE_TEST : return "TEST" ; case morpheo::behavioural::TYPE_MUL : return "MUL" ; case morpheo::behavioural::TYPE_DIV : return "DIV" ; case morpheo::behavioural::TYPE_EXTEND : return "EXTEND" ; case morpheo::behavioural::TYPE_FIND : return "FIND" ; case morpheo::behavioural::TYPE_SPECIAL : return "SPECIAL" ; case morpheo::behavioural::TYPE_CUSTOM : return "CUSTOM" ; case morpheo::behavioural::TYPE_BRANCH : return "BRANCH" ; case morpheo::behavioural::TYPE_MEMORY : return "MEMORY" ; default : return ""; } }; template<> inline std::string toString(const morpheo::behavioural::branch_condition_t& x) { switch (x) { case morpheo::behavioural::BRANCH_CONDITION_NONE_WITHOUT_WRITE_STACK : return "none_without_write_stack" ; case morpheo::behavioural::BRANCH_CONDITION_NONE_WITH_WRITE_STACK : return "none_with_write_stack" ; case morpheo::behavioural::BRANCH_CONDITION_FLAG_UNSET : return "flag_unset" ; case morpheo::behavioural::BRANCH_CONDITION_FLAG_SET : return "flag_set" ; case morpheo::behavioural::BRANCH_CONDITION_READ_REGISTER_WITHOUT_WRITE_STACK : return "read_register_without_write_stack"; case morpheo::behavioural::BRANCH_CONDITION_READ_REGISTER_WITH_WRITE_STACK : return "read_register_with_write_stack" ; case morpheo::behavioural::BRANCH_CONDITION_READ_STACK : return "read_stack" ; default : return ""; } }; // template<> inline std::string toString(const morpheo::behavioural::event_state_t& x) // { // switch (x) // { // case morpheo::behavioural::EVENT_STATE_NO_EVENT : return "EVENT_STATE_NO_EVENT"; // case morpheo::behavioural::EVENT_STATE_EVENT : return "EVENT_STATE_EVENT" ; // case morpheo::behavioural::EVENT_STATE_WAITEND : return "EVENT_STATE_WAITEND" ; // case morpheo::behavioural::EVENT_STATE_END : return "EVENT_STATE_END" ; // default : return ""; // } // }; // template<> inline std::string toString(const morpheo::behavioural::event_type_t& x) // { // switch (x) // { // case morpheo::behavioural::EVENT_TYPE_NONE : return "EVENT_TYPE_NONE" ; // case morpheo::behavioural::EVENT_TYPE_MISS_SPECULATION : return "EVENT_TYPE_MISS_SPECULATION" ; // case morpheo::behavioural::EVENT_TYPE_EXCEPTION : return "EVENT_TYPE_EXCEPTION" ; // case morpheo::behavioural::EVENT_TYPE_BRANCH_NO_ACCURATE : return "EVENT_TYPE_BRANCH_NO_ACCURATE"; // case morpheo::behavioural::EVENT_TYPE_SPR_ACCESS : return "EVENT_TYPE_SPR_ACCESS" ; // case morpheo::behavioural::EVENT_TYPE_MSYNC : return "EVENT_TYPE_MSYNC" ; // case morpheo::behavioural::EVENT_TYPE_PSYNC : return "EVENT_TYPE_PSYNC" ; // case morpheo::behavioural::EVENT_TYPE_CSYNC : return "EVENT_TYPE_CSYNC" ; // default : return ""; // } // }; inline std::string toString_instruction(const uint32_t& x) { switch (x) { // ORBIS case morpheo::behavioural::INSTRUCTION_L_ADD : return "l.add"; case morpheo::behavioural::INSTRUCTION_L_ADDC : return "l.addc"; case morpheo::behavioural::INSTRUCTION_L_ADDI : return "l.addi"; case morpheo::behavioural::INSTRUCTION_L_ADDIC : return "l.addic"; case morpheo::behavioural::INSTRUCTION_L_AND : return "l.and"; case morpheo::behavioural::INSTRUCTION_L_ANDI : return "l.andi"; case morpheo::behavioural::INSTRUCTION_L_BF : return "l.bf"; case morpheo::behavioural::INSTRUCTION_L_BNF : return "l.bnf"; case morpheo::behavioural::INSTRUCTION_L_CMOV : return "l.cmov"; case morpheo::behavioural::INSTRUCTION_L_CSYNC : return "l.csync"; case morpheo::behavioural::INSTRUCTION_L_CUST1 : return "l.cust1"; case morpheo::behavioural::INSTRUCTION_L_CUST2 : return "l.cust2"; case morpheo::behavioural::INSTRUCTION_L_CUST3 : return "l.cust3"; case morpheo::behavioural::INSTRUCTION_L_CUST4 : return "l.cust4"; case morpheo::behavioural::INSTRUCTION_L_CUST5 : return "l.cust5"; case morpheo::behavioural::INSTRUCTION_L_CUST6 : return "l.cust6"; case morpheo::behavioural::INSTRUCTION_L_CUST7 : return "l.cust7"; case morpheo::behavioural::INSTRUCTION_L_CUST8 : return "l.cust8"; case morpheo::behavioural::INSTRUCTION_L_DIV : return "l.div"; case morpheo::behavioural::INSTRUCTION_L_DIVU : return "l.divu"; case morpheo::behavioural::INSTRUCTION_L_EXTBS : return "l.extbs"; case morpheo::behavioural::INSTRUCTION_L_EXTBZ : return "l.extbz"; case morpheo::behavioural::INSTRUCTION_L_EXTHS : return "l.exths"; case morpheo::behavioural::INSTRUCTION_L_EXTHZ : return "l.exthz"; case morpheo::behavioural::INSTRUCTION_L_EXTWS : return "l.extws"; case morpheo::behavioural::INSTRUCTION_L_EXTWZ : return "l.extwz"; case morpheo::behavioural::INSTRUCTION_L_FF1 : return "l.ff1"; case morpheo::behavioural::INSTRUCTION_L_FL1 : return "l.fl1"; case morpheo::behavioural::INSTRUCTION_L_J : return "l.j"; case morpheo::behavioural::INSTRUCTION_L_JAL : return "l.jal"; case morpheo::behavioural::INSTRUCTION_L_JALR : return "l.jalr"; case morpheo::behavioural::INSTRUCTION_L_JR : return "l.jr"; case morpheo::behavioural::INSTRUCTION_L_LBS : return "l.lbs"; case morpheo::behavioural::INSTRUCTION_L_LBZ : return "l.lbz"; case morpheo::behavioural::INSTRUCTION_L_LD : return "l.ld"; case morpheo::behavioural::INSTRUCTION_L_LHS : return "l.lhs"; case morpheo::behavioural::INSTRUCTION_L_LHZ : return "l.lhz"; case morpheo::behavioural::INSTRUCTION_L_LWS : return "l.lws"; case morpheo::behavioural::INSTRUCTION_L_LWZ : return "l.lwz"; case morpheo::behavioural::INSTRUCTION_L_MAC : return "l.mac"; case morpheo::behavioural::INSTRUCTION_L_MACI : return "l.maci"; case morpheo::behavioural::INSTRUCTION_L_MACRC : return "l.macrc"; case morpheo::behavioural::INSTRUCTION_L_MFSPR : return "l.mfspr"; case morpheo::behavioural::INSTRUCTION_L_MOVHI : return "l.movhi"; case morpheo::behavioural::INSTRUCTION_L_MSB : return "l.msb"; case morpheo::behavioural::INSTRUCTION_L_MSYNC : return "l.msync"; case morpheo::behavioural::INSTRUCTION_L_MTSPR : return "l.mtspr"; case morpheo::behavioural::INSTRUCTION_L_MUL : return "l.mul"; case morpheo::behavioural::INSTRUCTION_L_MULI : return "l.muli"; case morpheo::behavioural::INSTRUCTION_L_MULU : return "l.mulu"; case morpheo::behavioural::INSTRUCTION_L_NOP : return "l.nop"; case morpheo::behavioural::INSTRUCTION_L_OR : return "l.or"; case morpheo::behavioural::INSTRUCTION_L_ORI : return "l.ori"; case morpheo::behavioural::INSTRUCTION_L_PSYNC : return "l.psync"; case morpheo::behavioural::INSTRUCTION_L_RFE : return "l.rfe"; case morpheo::behavioural::INSTRUCTION_L_ROR : return "l.ror"; case morpheo::behavioural::INSTRUCTION_L_RORI : return "l.rori"; case morpheo::behavioural::INSTRUCTION_L_SB : return "l.sb"; case morpheo::behavioural::INSTRUCTION_L_SD : return "l.sd"; case morpheo::behavioural::INSTRUCTION_L_SFEQ : return "l.sfeq"; case morpheo::behavioural::INSTRUCTION_L_SFEQI : return "l.sfeqi"; case morpheo::behavioural::INSTRUCTION_L_SFGES : return "l.sfges"; case morpheo::behavioural::INSTRUCTION_L_SFGESI : return "l.sfgesi"; case morpheo::behavioural::INSTRUCTION_L_SFGEU : return "l.sfgeu"; case morpheo::behavioural::INSTRUCTION_L_SFGEUI : return "l.sfgeui"; case morpheo::behavioural::INSTRUCTION_L_SFGTS : return "l.sfgts"; case morpheo::behavioural::INSTRUCTION_L_SFGTSI : return "l.sfgtsi"; case morpheo::behavioural::INSTRUCTION_L_SFGTU : return "l.sfgtu"; case morpheo::behavioural::INSTRUCTION_L_SFGTUI : return "l.sfgtui"; case morpheo::behavioural::INSTRUCTION_L_SFLES : return "l.sfles"; case morpheo::behavioural::INSTRUCTION_L_SFLESI : return "l.sflesi"; case morpheo::behavioural::INSTRUCTION_L_SFLEU : return "l.sfleu"; case morpheo::behavioural::INSTRUCTION_L_SFLEUI : return "l.sfleui"; case morpheo::behavioural::INSTRUCTION_L_SFLTS : return "l.sflts"; case morpheo::behavioural::INSTRUCTION_L_SFLTSI : return "l.sfltsi"; case morpheo::behavioural::INSTRUCTION_L_SFLTU : return "l.sfltu"; case morpheo::behavioural::INSTRUCTION_L_SFLTUI : return "l.sfltui"; case morpheo::behavioural::INSTRUCTION_L_SFNE : return "l.sfne"; case morpheo::behavioural::INSTRUCTION_L_SFNEI : return "l.sfnei"; case morpheo::behavioural::INSTRUCTION_L_SH : return "l.sh"; case morpheo::behavioural::INSTRUCTION_L_SLL : return "l.sll"; case morpheo::behavioural::INSTRUCTION_L_SLLI : return "l.slli"; case morpheo::behavioural::INSTRUCTION_L_SRA : return "l.sra"; case morpheo::behavioural::INSTRUCTION_L_SRAI : return "l.srai"; case morpheo::behavioural::INSTRUCTION_L_SRL : return "l.srl"; case morpheo::behavioural::INSTRUCTION_L_SRLI : return "l.srli"; case morpheo::behavioural::INSTRUCTION_L_SUB : return "l.sub"; case morpheo::behavioural::INSTRUCTION_L_SW : return "l.sw"; case morpheo::behavioural::INSTRUCTION_L_SYS : return "l.sys"; case morpheo::behavioural::INSTRUCTION_L_TRAP : return "l.trap"; case morpheo::behavioural::INSTRUCTION_L_XOR : return "l.xor"; case morpheo::behavioural::INSTRUCTION_L_XORI : return "l.xori"; // ORFPX case morpheo::behavioural::INSTRUCTION_LF_ADD_D : return "lf.add_d"; case morpheo::behavioural::INSTRUCTION_LF_ADD_S : return "lf.add_s"; case morpheo::behavioural::INSTRUCTION_LF_CUST1_D : return "lf.cust1_d"; case morpheo::behavioural::INSTRUCTION_LF_CUST1_S : return "lf.cust1_s"; case morpheo::behavioural::INSTRUCTION_LF_DIV_D : return "lf.div_d"; case morpheo::behavioural::INSTRUCTION_LF_DIV_S : return "lf.div_s"; case morpheo::behavioural::INSTRUCTION_LF_FTOI_D : return "lf.ftoi_d"; case morpheo::behavioural::INSTRUCTION_LF_FTOI_S : return "lf.ftoi_s"; case morpheo::behavioural::INSTRUCTION_LF_ITOF_D : return "lf.itof_d"; case morpheo::behavioural::INSTRUCTION_LF_ITOF_S : return "lf.itof_s"; case morpheo::behavioural::INSTRUCTION_LF_MADD_D : return "lf.madd_d"; case morpheo::behavioural::INSTRUCTION_LF_MADD_S : return "lf.madd_s"; case morpheo::behavioural::INSTRUCTION_LF_MUL_D : return "lf.mul_d"; case morpheo::behavioural::INSTRUCTION_LF_MUL_S : return "lf.mul_s"; case morpheo::behavioural::INSTRUCTION_LF_REM_D : return "lf.rem_d"; case morpheo::behavioural::INSTRUCTION_LF_REM_S : return "lf.rem_s"; case morpheo::behavioural::INSTRUCTION_LF_SFEQ_D : return "lf.sfeq_d"; case morpheo::behavioural::INSTRUCTION_LF_SFEQ_S : return "lf.sfeq_s"; case morpheo::behavioural::INSTRUCTION_LF_SFGE_D : return "lf.sfge_d"; case morpheo::behavioural::INSTRUCTION_LF_SFGE_S : return "lf.sfge_s"; case morpheo::behavioural::INSTRUCTION_LF_SFGT_D : return "lf.sfgt_d"; case morpheo::behavioural::INSTRUCTION_LF_SFGT_S : return "lf.sfgt_s"; case morpheo::behavioural::INSTRUCTION_LF_SFLE_D : return "lf.sfle_d"; case morpheo::behavioural::INSTRUCTION_LF_SFLE_S : return "lf.sfle_s"; case morpheo::behavioural::INSTRUCTION_LF_SFLT_D : return "lf.sflt_d"; case morpheo::behavioural::INSTRUCTION_LF_SFLT_S : return "lf.sflt_s"; case morpheo::behavioural::INSTRUCTION_LF_SFNE_D : return "lf.sfne_d"; case morpheo::behavioural::INSTRUCTION_LF_SFNE_S : return "lf.sfne_s"; case morpheo::behavioural::INSTRUCTION_LF_SUB_D : return "lf.sub_d"; case morpheo::behavioural::INSTRUCTION_LF_SUB_S : return "lf.sub_s"; // ORVDX case morpheo::behavioural::INSTRUCTION_LV_ADD_B : return "lv.add_b"; case morpheo::behavioural::INSTRUCTION_LV_ADD_H : return "lv.add_h"; case morpheo::behavioural::INSTRUCTION_LV_ADDS_B : return "lv.adds_b"; case morpheo::behavioural::INSTRUCTION_LV_ADDS_H : return "lv.adds_h"; case morpheo::behavioural::INSTRUCTION_LV_ADDU_B : return "lv.addu_b"; case morpheo::behavioural::INSTRUCTION_LV_ADDU_H : return "lv.addu_h"; case morpheo::behavioural::INSTRUCTION_LV_ADDUS_B : return "lv.addus_b"; case morpheo::behavioural::INSTRUCTION_LV_ADDUS_H : return "lv.addus_h"; case morpheo::behavioural::INSTRUCTION_LV_ALL_EQ_B : return "lv.all_eq_b"; case morpheo::behavioural::INSTRUCTION_LV_ALL_EQ_H : return "lv.all_eq_h"; case morpheo::behavioural::INSTRUCTION_LV_ALL_GE_B : return "lv.all_ge_b"; case morpheo::behavioural::INSTRUCTION_LV_ALL_GE_H : return "lv.all_ge_h"; case morpheo::behavioural::INSTRUCTION_LV_ALL_GT_B : return "lv.all_gt_b"; case morpheo::behavioural::INSTRUCTION_LV_ALL_GT_H : return "lv.all_gt_h"; case morpheo::behavioural::INSTRUCTION_LV_ALL_LE_B : return "lv.all_le_b"; case morpheo::behavioural::INSTRUCTION_LV_ALL_LE_H : return "lv.all_le_h"; case morpheo::behavioural::INSTRUCTION_LV_ALL_LT_B : return "lv.all_lt_b"; case morpheo::behavioural::INSTRUCTION_LV_ALL_LT_H : return "lv.all_lt_h"; case morpheo::behavioural::INSTRUCTION_LV_ALL_NE_B : return "lv.all_ne_b"; case morpheo::behavioural::INSTRUCTION_LV_ALL_NE_H : return "lv.all_ne_h"; case morpheo::behavioural::INSTRUCTION_LV_AND : return "lv.and"; case morpheo::behavioural::INSTRUCTION_LV_ANY_EQ_B : return "lv.any_eq_b"; case morpheo::behavioural::INSTRUCTION_LV_ANY_EQ_H : return "lv.any_eq_h"; case morpheo::behavioural::INSTRUCTION_LV_ANY_GE_B : return "lv.any_ge_b"; case morpheo::behavioural::INSTRUCTION_LV_ANY_GE_H : return "lv.any_ge_h"; case morpheo::behavioural::INSTRUCTION_LV_ANY_GT_B : return "lv.any_gt_b"; case morpheo::behavioural::INSTRUCTION_LV_ANY_GT_H : return "lv.any_gt_h"; case morpheo::behavioural::INSTRUCTION_LV_ANY_LE_B : return "lv.any_le_b"; case morpheo::behavioural::INSTRUCTION_LV_ANY_LE_H : return "lv.any_le_h"; case morpheo::behavioural::INSTRUCTION_LV_ANY_LT_B : return "lv.any_lt_b"; case morpheo::behavioural::INSTRUCTION_LV_ANY_LT_H : return "lv.any_lt_h"; case morpheo::behavioural::INSTRUCTION_LV_ANY_NE_B : return "lv.any_ne_b"; case morpheo::behavioural::INSTRUCTION_LV_ANY_NE_H : return "lv.any_ne_h"; case morpheo::behavioural::INSTRUCTION_LV_AVG_B : return "lv.avg_b"; case morpheo::behavioural::INSTRUCTION_LV_AVG_H : return "lv.avg_h"; case morpheo::behavioural::INSTRUCTION_LV_CMP_EQ_B : return "lv.cmp_eq_b"; case morpheo::behavioural::INSTRUCTION_LV_CMP_EQ_H : return "lv.cmp_eq_h"; case morpheo::behavioural::INSTRUCTION_LV_CMP_GE_B : return "lv.cmp_ge_b"; case morpheo::behavioural::INSTRUCTION_LV_CMP_GE_H : return "lv.cmp_ge_h"; case morpheo::behavioural::INSTRUCTION_LV_CMP_GT_B : return "lv.cmp_gt_b"; case morpheo::behavioural::INSTRUCTION_LV_CMP_GT_H : return "lv.cmp_gt_h"; case morpheo::behavioural::INSTRUCTION_LV_CMP_LE_B : return "lv.cmp_le_b"; case morpheo::behavioural::INSTRUCTION_LV_CMP_LE_H : return "lv.cmp_le_h"; case morpheo::behavioural::INSTRUCTION_LV_CMP_LT_B : return "lv.cmp_lt_b"; case morpheo::behavioural::INSTRUCTION_LV_CMP_LT_H : return "lv.cmp_lt_h"; case morpheo::behavioural::INSTRUCTION_LV_CMP_NE_B : return "lv.cmp_ne_b"; case morpheo::behavioural::INSTRUCTION_LV_CMP_NE_H : return "lv.cmp_ne_h"; case morpheo::behavioural::INSTRUCTION_LV_CUST1 : return "lv.cust1"; case morpheo::behavioural::INSTRUCTION_LV_CUST2 : return "lv.cust2"; case morpheo::behavioural::INSTRUCTION_LV_CUST3 : return "lv.cust3"; case morpheo::behavioural::INSTRUCTION_LV_CUST4 : return "lv.cust4"; case morpheo::behavioural::INSTRUCTION_LV_MADDS_H : return "lv.madds_h"; case morpheo::behavioural::INSTRUCTION_LV_MAX_B : return "lv.max_b"; case morpheo::behavioural::INSTRUCTION_LV_MAX_H : return "lv.max_h"; case morpheo::behavioural::INSTRUCTION_LV_MERGE_B : return "lv.merge_b"; case morpheo::behavioural::INSTRUCTION_LV_MERGE_H : return "lv.merge_h"; case morpheo::behavioural::INSTRUCTION_LV_MIN_B : return "lv.min_b"; case morpheo::behavioural::INSTRUCTION_LV_MIN_H : return "lv.min_h"; case morpheo::behavioural::INSTRUCTION_LV_MSUBS_H : return "lv.msubs_h"; case morpheo::behavioural::INSTRUCTION_LV_MULS_H : return "lv.muls_h"; case morpheo::behavioural::INSTRUCTION_LV_NAND : return "lv.nand"; case morpheo::behavioural::INSTRUCTION_LV_NOR : return "lv.nor"; case morpheo::behavioural::INSTRUCTION_LV_OR : return "lv.or"; case morpheo::behavioural::INSTRUCTION_LV_PACK_B : return "lv.pack_b"; case morpheo::behavioural::INSTRUCTION_LV_PACK_H : return "lv.pack_h"; case morpheo::behavioural::INSTRUCTION_LV_PACKS_B : return "lv.packs_b"; case morpheo::behavioural::INSTRUCTION_LV_PACKS_H : return "lv.packs_h"; case morpheo::behavioural::INSTRUCTION_LV_PACKUS_B : return "lv.packus_b"; case morpheo::behavioural::INSTRUCTION_LV_PACKUS_H : return "lv.packus_h"; case morpheo::behavioural::INSTRUCTION_LV_PERM_N : return "lv.perm_n"; case morpheo::behavioural::INSTRUCTION_LV_RL_B : return "lv.rl_b"; case morpheo::behavioural::INSTRUCTION_LV_RL_H : return "lv.rl_h"; case morpheo::behavioural::INSTRUCTION_LV_SLL : return "lv.sll"; case morpheo::behavioural::INSTRUCTION_LV_SLL_B : return "lv.sll_b"; case morpheo::behavioural::INSTRUCTION_LV_SLL_H : return "lv.sll_h"; case morpheo::behavioural::INSTRUCTION_LV_SRA_B : return "lv.sra_b"; case morpheo::behavioural::INSTRUCTION_LV_SRA_H : return "lv.sra_h"; case morpheo::behavioural::INSTRUCTION_LV_SRL : return "lv.srl"; case morpheo::behavioural::INSTRUCTION_LV_SRL_B : return "lv.srl_b"; case morpheo::behavioural::INSTRUCTION_LV_SRL_H : return "lv.srl_h"; case morpheo::behavioural::INSTRUCTION_LV_SUB_B : return "lv.sub_b"; case morpheo::behavioural::INSTRUCTION_LV_SUB_H : return "lv.sub_h"; case morpheo::behavioural::INSTRUCTION_LV_SUBS_B : return "lv.subs_b"; case morpheo::behavioural::INSTRUCTION_LV_SUBS_H : return "lv.subs_h"; case morpheo::behavioural::INSTRUCTION_LV_SUBU_B : return "lv.subu_b"; case morpheo::behavioural::INSTRUCTION_LV_SUBU_H : return "lv.subu_h"; case morpheo::behavioural::INSTRUCTION_LV_SUBUS_B : return "lv.subus_b"; case morpheo::behavioural::INSTRUCTION_LV_SUBUS_H : return "lv.subus_h"; case morpheo::behavioural::INSTRUCTION_LV_UNPACK_B : return "lv.unpack_b"; case morpheo::behavioural::INSTRUCTION_LV_UNPACK_H : return "lv.unpack_h"; case morpheo::behavioural::INSTRUCTION_LV_XOR : return "lv.xor"; default : return ""; } }; }; // end namespace morpheo #endif